Python获取IP地址的三种方法

来源:网络时间:2018-02-22 13:01:49

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

Python获取IP地址的三种方法

  使用拨号上网的话,一般都有一个本地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 socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0X8915, struct.pack(‘256s’, ethname[:15]))[20:24]) 

if __name__==’__main__’: 

print getip(‘eth0’)

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

 代码如下

#!/usr/bin/env python

import re,urllib2

class Get_public_ip:

    def getip(self):

        try:

            myip = self.visit(";)


        except:

            try:

                myip = self.visit(";)

            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()

文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站) 联系邮箱:rjfawu@163.com