函式 valid_ip 主要將 包含255,127.0.0.1,0.0.0.0等位址進行過濾,通過判斷返回false及true。
函式 get_ip 先通過ifconfig獲取當前ip位址資訊,接著通過match匹配出所有ip位址,然後通過filter將valid_ip 和 具體的ip位址進行過濾。最後得出本機ip位址。
#!/usr/bin/python
import os
import re
defvalid_ip
(ip):
if ("255"
in ip) or ( ip == "127.0.0.1") or ( ip == "0.0.0.0" ):
return
false
else:
return
true
defget_ip
(valid_ip):
ipss = ''.join(os.popen("ifconfig").readlines())
match = "\d\.\d\.\d\.\d"
ips = re.findall(match, ipss, flags=re.m)
ip = filter(valid_ip, ips)
return
''.join(ip)
ip_addr = get_ip(valid_ip)
print ip_addr
python通過UDP獲取本機IP
利用 udp 協議來實現的,生成乙個udp包,把自己的 ip 放如到 udp 協議頭中,然後從udp包中獲取本機的ip。這個方法並不會真實的向外部發包,所以用抓包工具是看不到的。但是會申請乙個 udp 的埠,所以如果經常呼叫也會比較耗時的,這裡如果需要可以將查詢到的ip給快取起來,效能可以獲得很大提...
Linux下通過python獲取本機ip方法示例
下面介紹在linux上利用python獲rvzxfghp取本機ip的方法.經過網上調查,發現大致有兩種方法,一種是呼叫shell指令碼,另一種是利用python中的s等模組來得到,下面是這兩種方法的原始碼 usr bin env python encoding utf 8 description g...
python 獲取本機 IP
這個方法是目前見過最優雅獲取本機伺服器的ip方法了。沒有任何的依賴,也沒有去猜測機器上的網路裝置資訊。而且是利用 udp 協議來實現的,生成乙個udp包,把自己的 ip 放如到 udp 協議頭中,然後從udp包中獲取本機的ip。這個方法並不會真實的向外部發包,所以用抓包工具是看不到的。但是會申請乙個...