您的位置:首页 > 编程语言 > Python开发

DIY个人智能家庭网关—— python篇之获取路由器外网地址

2017-02-26 20:28 387 查看
免费的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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: