假设您已经满足下面的条件
- 拥有某运营商提供的家庭宽带
- 宽带已经向运营商要求提供公网IP(静态IP的无需再进行查询,一般考虑动态公网IP)
直接访问该网址,可以直观看到公网IP
直接访问,可以再页面上看到公网IP,还可以调用https://api.ipify.org?format=json 返回json数据,利用python调用该链接获取公网ip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import json from urllib import request
def main(): url = 'https://api.ipify.org?format=json' headers = {"Content-Type": "application/json; charset=utf-8"}
req = request.Request(url=url, method='GET', headers=headers) response = request.urlopen(req) rsp_body = response.read().decode('utf-8') rsp_dict = json.loads(rsp_body) wan_ip = rsp_dict.get('ip') print(wan_ip)
if __name__ == '__main__': main()
|
保存上面的代码到test.py,在同目录下执行python test.py