獲取主機內網,外網IP,主機名
代碼如下:
#!/usr/bin/env python #-*- coding:utf-8 -*- # author:Zeng Xianhe import socket import fcntl,struct import time def getHardware(outip,inip): sk = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) ##1.獲取主機名 hostname = socket.gethostname() print '主機名*************************',hostname ##獲取ip, OutIp = socket.inet_ntoa(fcntl.ioctl(sk.fileno(), 0x8915, struct.pack('256s', outip[:15]))[20:24]) InIp = socket.inet_ntoa(fcntl.ioctl(sk.fileno(), 0x8915, struct.pack('256s', inip[:15]))[20:24]) print '外網網卡為*************************',OutIp print '內網網卡為*************************',InIp #填寫網卡名稱,我這里沒有外網ip,用lo測試 getHardware('lo','eth0')
運行結果:
[root@192-168-0-99 ~]# python getdata.py
主機名************************* 192-168-0-99
外網網卡為************************* 127.0.0.1
內網網卡為************************* 192.168.0.99