版權聲明:轉載請注明作者(獨孤尚良dugushangliang)出處: https://blog.csdn.net/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的宗旨是什么?可以移步這里看: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)
其結果如下:
這個得到了我們想要的ip。
因為每臺機器的情況不同,如本機聯網方式、本機是否虛擬機、本機是否有安裝虛擬機等,ip的獲取得因地制宜。
?
獨孤尚良dugushangliang——著
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
