#!/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.但...