1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python通过socket模块获取本机主机名和IP地址

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

时间:2023-08-17 00:44:21

相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

参考1:/xcfree/p/5045415.html

import socketprint(socket.gethostbyname(socket.gethostname()))

其结果如下:

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

参考2:/chenjingyi/p/5741742.html

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

其结果如下:

这个和第一个一样。

参考3:/laobaiv1/1956093

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

其结果如下:

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

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

独孤尚良dugushangliang——著

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。