Python获取公网IP
前言
在Python网络编程中,开发者常常需要及时获取platform的外网/公网IP地址。如此,出现不同的解决办法。常见的有:
- 调用socket函数,如使用socket的gethostbyname_ex()
- 使用urllib获取ip查询网站的网页元素
- 使用platform的API获取网卡信息
然而,socket的gethostbyname并不能在多级路由环境获取准确的外网ip。ip查询网站对于高OPS的外部流量有自我保护,并且难以提供稳定、长期的支持。因此,博主剑走偏锋采取一种较麻烦、鲁棒性却好的方法。
服务器查询服务部署
博主为方便ip查询,特在服务器PHP环境下部署一查询服务xxxx.com/ip.php 访问结果为当访问者的外网iP
<?php
ip =_SERVER["REMOTE_ADDR"];
echo $ip;
?>
requests库解析访问结果
import requests def get_ip_address(): response = requests.get('http://tool.nanguoyu.us/ip.php') return response.content.decode() print(get_ip_address())
访问结果:
[newlink title='注意']本人代码中查询服务器禁止滥用[/newlink]
文章评论