本程序利用Python编程语言编写使用ipw.cn网站和bilibiliAPI接口识别程序。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| import requests import json #使用json分析模块 import sys
header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0' } # 伪装Agent头 print('\n以下数据基于ipw.cn网站支持\n') try: IP4 = 'https://4.ipw.cn' result4 = requests.get(url=IP4, headers=header, timeout=15) #防止网络超时 print('本机公网IPV4地址是:'+result4.text) except: print('网络未连接到互联网!') print("\n\n\n程序执行完毕,请按下回车键关闭...") input() sys.exit(0) try: #防止部分主机未接入IPV6网络 IP6 = 'https://6.ipw.cn' result6 = requests.get(url=IP6, headers=header, timeout=15) print('本机公网IPV6地址是:'+result6.text) except: print('本机无公网IPV6地址!') IPuse = 'https://test.ipw.cn' resultuse = requests.get(IPuse, headers=header) #根据测试,此数据必须加Agent伪装头,不然可能会导致数据不正常 print('本机首选公网IP地址是:'+resultuse.text)
print('\n以下数据基于BilibiliAPI支持\n') IPinfo = 'https://api.bilibili.com/x/web-interface/zone' #此为bilibiliAPI接口 try: resultinfo = requests.get(IPinfo, headers=header,timeout=15) # 设置超时秒数,防止接口失效 print('本机IP信息:') info = json.loads(resultinfo.text) ip_address = info['data']['addr'] country = info['data']['country'] province = info['data']['province'] city = info['data']['city'] isp = info['data']['isp'] print(f'IP: {ip_address}') print(f'国家: {country}') print(f'城市: {province} {city}') print(f'电信运营商: {isp}') #选取几个重要的参数即可,可自行根据参数调整 except: print('\n网络或接口异常!') print("\n\n\n程序执行完毕,请按下回车键关闭...") input() #等待按下回车 sys.exit(0) #程序结束
|
运行程序可以在控制台中打印出IP及信息。如需打包程序可以在代码路径下运行CMD命令:
1 2
| pip install pyinstaller #安装打包程序 pyinstaller -F code.py #打包生成可执行文件
|
注:非中文系统环境可能出现乱码。