因此,我試圖獲取運行程序的機器的局域網IP地址,並將其與通過UDP傳遞給它的IP地址進行比較。Python在Ubuntu上獲取機器的局域網IP地址
然而,當我使用:
print str(socket.gethostbyname(socket.gethostname()))
它返回127.0.0.1這應該是192.168.1.9。
我已經看過了linux機器和它獲取lo(loopback)端口的IP地址嗎?我不知道到底是什麼,但它應該獲取eth0的IP地址。
我發現我可以對bash命令「ifconfig eth0」進行子處理,但是會返回一個字符串的大塊。我可以把它處理成我需要的東西,但是這將會在一個beaglebone上每秒運行3次,所以我希望它更有效一些。
有沒有更好的方法來做到這一點?
我可以只改變gethostname的目標嗎?
它爲什麼瞄準lo口?
感謝您的幫助maners。
如果有人試圖做到這一點,他們有一個服務器,將始終有互聯網接入有網站http://code.activestate.com/recipes/439094-get-the-ip-address-associated-with-a -network-inter /可以解決問題。但我的服務器不會總是有互聯網,所以我不能使用它。 – Poodimizer