DIY個人智慧家庭閘道器—— python篇之獲取路由器外網地址
阿新 • • 發佈:2019-02-01
免費的DDNS域名服務有時候重新整理不及時,解析不到路由器的IP,就可以採用這種方法來解決
#!/usr/bin/env python # -*- coding: utf-8 -*- import socket import fcntl import struct import subprocess import jpush from time import sleep SIOCGIFADDR = 0x8915 def get_ip_address(ifname): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: ip = socket.inet_ntoa(fcntl.ioctl( s.fileno(), SIOCGIFADDR, struct.pack('256s', ifname[:15]) )[20:24]) return ip except: return '' old_ip ='' while True: new_ip = get_ip_address('pppoe-wan') if new_ip != old_ip and new_ip != '': msg = '你的路由器IP:%s'%new_ip old_ip = new_ip try: jpush.push_msg(msg) except: sleep(2) continue sleep(10*60)