Python獲取IP地址的三種方法

導語:在python中獲取IP地址的方法很簡單,我們只和gethostbyname和gethostbyname_ex兩個函數可以實現了,當然也可以利用公網api來實現。

Python獲取IP地址的三種方法

使用撥號上網的'話,一般都有一個本地ip和一個外網ip,使用python可以很容易的得到這兩個ip

使用gethostbyname和gethostbyname_ex兩個函數可以實現

  代碼如下

import socket

localIP = ostbyname(ostname())#這個得到本地ip

print "local ip:%s "%localIP

ipList = ostbyname_ex(ostname())

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=et(_INET, _DGRAM)

return _ntoa(l(no(), 0X8915, (‘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 = t("")

except:

try:

myip = t("")

except:

myip = "So sorry!!!"

return myip

def visit(self,url):

opener = pen(url)

if url == rl():

str = ()

return ch('d+.d+.d+.d+',str)p(0)

if __name__ == "__main__":

getmyip = Get_public_ip()

print p()