Python获取IP地址的三种方法

在python中获取IP地址的方法很简单,我们只和gethostbyname和gethostbyname_ex两个函数可以实现了,当然也可以利用公网api来实现。

  使用拨号上网的话,一般都有一个本地ip和一个外网ip,使用python可以很容易的得到这两个ip

  使用gethostbyname和gethostbyname_ex两个函数可以实现

代码如下 import socket localIP = socket.gethostbyname(socket.gethostname())#这个得到本地ip print "local ip:%s "%localIP ipList = socket.gethostbyname_ex(socket.gethostname()) for i in ipList: if i != localIP: print "external IP:%s"%i

  获取本地IP地址

代码如下 #!/usr/bin/python import socket import struct import fcntl def getip(ethname): s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return .inet_ntoa(fcntl.ioctl(s.fileno(), 0X8915, struct.pack(‘256s’, ethname[:15]))[20:24]) if __name__==’__main__’: print getip(‘eth0’)

  方法二,公网地址直接获取IP

代码如下 #!/usr/bin/env import re,urllib2 class Get_public_ip: def getip(self): try: myip = self.visit("http://www.111cn.net/") except: try: myip = self.visit("http://www.ip138.com/ip2city.asp") except: myip = "So sorry!!!" return myip def visit(self,url): opener = urllib2.urlopen(url) if url == opener.geturl(): str = opener.read() return re.search(d+.d+.d+.d+,str).group(0) if __name__ == "__main__": getmyip = Get_public_ip() print getmyip.getip()

经验分享 程序员 微信小程序 职场和发展