数据价值-DataValues

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 114|回复: 0

[python] 【python】获取本机的hostname以及外网ip(转)

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
39025
发表于 2017-2-16 09:13:54 | 显示全部楼层 |阅读模式
【python】获取本机的hostname以及外网ip,
关键词:python 获取外网ip、 python获取本机外网ip、python3 获取外网ip,
1 得到外网IP地址
import re,urllib2
class Getmyip:
   def getip(self):
       try:
           myip = self.visit(“http://www.ip138.com/ip2city.asp”)
           return myip
       except:
           try:
               myip = self.visit(“http://www.bliao.com/ip.phtml”)
           except:
               try:
                   myip = self.visit(“http://www.whereismyip.com/”)
               except:   
                   myip = “So sorry!!!”
                   return myip
  
   def visit(self,url):
       opener = urllib2.urlopen(url)
       if url == opener.geturl():
           str = opener.read()
           asd=re.search(‘\d+\.\d+\.\d+\.\d+’,str).group(0)
           return asd
      
getmyip = Getmyip()
localip = getmyip.getip()
print localip,
2 获取本地IP
2.1 windows和linux下
import socket,
localIP=socket.gethostbyname(socket.gethostname())
print “local ip:%s “%localIP,
ipList=socket.gethostbyname_ex(socket.gethostname())
for i in ipList:
   if i!=localIP:
       print “external IP:%s”%i
2.2 linux下
import socket,fcntl,struct,
def get_ip_address(ifname):
       s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
       return socket.inet_ntoa(fcntl.ioctl(
               s.fileno(),
               0x8915,
               struct.pack(‘256s’,ifname[:15])
       )[20:24]),
print get_ip_address(‘eth0’),
转载请注明:数据分析 » 【python】获取本机的hostname以及外网ip(转)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|DataValues ( 赣ICP备16006919号 ) DataValues

GMT+8, 2019-6-18 13:29 , Processed in 0.113491 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表