python通过socket模块获取本机主机名和IP地址

系统 1725 0

版权声明:转载请注明作者(独孤尚良dugushangliang)出处: https://blog.csdn.net/dugushangliang/article/details/90021409

 

先说说查看本机ip的方法:

可以直接通过搜索引擎搜索ip,得到的是公网ip,你是用这个ip上网的,即和互联网交互的。

python通过socket模块获取本机主机名和IP地址_第1张图片

python通过socket模块获取本机主机名和IP地址_第2张图片

python通过socket模块获取本机主机名和IP地址_第3张图片

python通过socket模块获取本机主机名和IP地址_第4张图片

python通过socket模块获取本机主机名和IP地址_第5张图片

但奇怪的是,有的是180开头有的是218开头。这个有些奇怪。鄙人水平不足,先存疑待考吧。

本机是通过路由器联网的,不是直接通过拨号连接互联网的,所以本机有局域网的ip,即路由器分配给本机的ip。

局域网ip如何查看呢?cmd打开,输入ipconfig,执行即可查看。

python通过socket模块获取本机主机名和IP地址_第6张图片

为什么有三个ip呢?因为前两个是虚拟机的,因为本机有安装虚拟机所以不止一个ip,我们本机的ip就是“无线局域网适配器 WLAN”的ip——192.168.1.2。

那么怎么通过python获取到这个ip地址呢?

找了好久的帖子,也遇到了不少的长篇大论。但python的宗旨是什么?可以移步这里看:https://www.hocoding.com/p/504.html,下面是其中的一句:

这就好比国粹所言:顷刻间千秋事业,方寸地万里江山;三五步行遍天下,六七人百万雄兵。

这么简单的事情,弄很长的代码,也太扫兴了。寻寻觅觅,踏破铁鞋,结果如下:

附注:本机windows系统,python3环境。

参考1:https://www.cnblogs.com/xcfree/p/5045415.html

            
              import socket
print(socket.gethostbyname(socket.gethostname()))
            
          

其结果如下:

显然不是我们想要的。没装虚拟机的也许这里就得到了正确答案。

参考2:https://www.cnblogs.com/chenjingyi/p/5741742.html

            
              import socket
myname = socket.getfqdn(socket.gethostname(  ))
myaddr = socket.gethostbyname(myname)
print(myname,myaddr)

            
          

其结果如下:

这个和第一个一样。

参考3:https://blog.51cto.com/laobaiv1/1956093

            
              import socket
hostname = socket.gethostname()
print ( "Host name: %s" %hostname)
sysinfo = socket.gethostbyname_ex(hostname)
ip_addr = sysinfo[2]
for ip in ip_addr:
    print(ip)
            
          

其结果如下:

python通过socket模块获取本机主机名和IP地址_第7张图片

这个得到了我们想要的ip。

因为每台机器的情况不同,如本机联网方式、本机是否虚拟机、本机是否有安装虚拟机等,ip的获取得因地制宜。

 

独孤尚良dugushangliang——著

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论