python獲取linux本機IP

2021-09-03 08:48:21 字數 716 閱讀 5059

#!/usr/bin/env python  

#encoding: utf-8  

#description: get local ip address  

import os  

import socket, fcntl, struct  

def get_ip():  

#注意外圍使用雙引號而非單引號,並且假設預設是第乙個網絡卡,特殊環境請適當修改**  

out = os.popen("ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '' | head -1").read()  

print out  

#另一種方法, 只需要指定網絡卡介面, 我更傾向於這個方法  

def get_ip2(ifname):  

s = socket.socket(socket.af_inet, socket.sock_dgram)  

return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15]))[20:24])  

if __name__ == '__main__':  

get_ip()  

print get_ip2('eth0')  

print get_ip2('lo')

python獲取本機資訊

python的確是簡單方便,庫函式完成了許多可能用到的功能,今天學習到的是獲取本機資訊的功能.import socket defget host ip 查詢本機ip位址 return ip try s socket.socket socket.af inet,socket.sock dgram s....

python 獲取本機 IP

這個方法是目前見過最優雅獲取本機伺服器的ip方法了。沒有任何的依賴,也沒有去猜測機器上的網路裝置資訊。而且是利用 udp 協議來實現的,生成乙個udp包,把自己的 ip 放如到 udp 協議頭中,然後從udp包中獲取本機的ip。這個方法並不會真實的向外部發包,所以用抓包工具是看不到的。但是會申請乙個...

python 獲取本機 IP

總是會有獲取本機 ip 的需求,但是就是這樣乙個簡單的需求處理起來還是有很多需要細化 明確的東東。1 什麼是本機 ip?本機的外網 ip?本機的內網 ip?2 是在 linux 上還是其他系統也要支援?為此,咱今兒特意查了下谷歌娘,總結得到以下 支援linux 32 64,solaris,win.但...