python獲得本機本地ip地址的方法匯總

e2ex 9年前發布 | 2K 次閱讀 Python

python的socket包含了豐富的函數和方法可以獲得本機的ip地址信息,socket對象的gethostbyname方法可以根據主機名獲得本機ip地址,socket對象的gethostbyname_ex方法可以獲得本機所有ip地址列表

第一種方法:通過socket.gethostbyname方法獲得

import socket
localIP = socket.gethostbyname(socket.gethostname())#得到本地ip
print "local ip:%s "%localIP

</pre> 返回結果如下:

'172.16.34.102'

</pre> 第二種方法:通過socket.gethostbyname_ex方法獲得本機主機名和ip地址列表

ipList = socket.gethostbyname_ex(socket.gethostname())
print(ipList)

</pre> 返回結果如下:

('sharejs.com', [], ['172.16.34.102', '169.254.185.115'])

</pre> 以上兩種方法在linux下也可以使用,linux下還以通過下面的代碼獲取本機ip地址

import socket
import fcntl
import struct

def get_ip_address(ifname): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( s.fileno(), 0x8915, # SIOCGIFADDR struct.pack('256s', ifname[:15]) )[20:24])

</pre>

 本文由用戶 e2ex 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!