程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Python獲取IP地址的三種方法

Python獲取IP地址的三種方法

編輯:關於PHP編程

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

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved