python获取本地ip的方法

Python021

python获取本地ip的方法,第1张

方法一可能有的获取不到ip(比如没有正确设置up名称)

方法

import socket

#获取计算机名称

hostname=socket.gethostname()

#获取本机IP

ip=socket.gethostbyname(hostname)

print(ip)

方法二

import socket

def get_host_ip():

    """

    查询本机ip地址

    :return:

    """

    try:      s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

        s.connect(('8.8.8.8',80))

        ip=s.getsockname()[0]

    finally:

        s.close()

    return ip

if __name__ == '__main__':

    print(get_host_ip())

主要介绍了python使用Flask框架获取用户IP地址的方法,实例分析了Python使用Flask框架remote_addr获取IP的`技巧,非常具有实用价值,需要的朋友可以参考下。

下面的代码包含了html页面和python代码,非常详细,如果你正使用Flask,也可以学习一下最基本的Flask使用方法。

python代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

from flask import Flask, render_template, request

# Initialize the Flask application

app = Flask(__name__)

# Default route, print user's IP

@app.route('/')

def index():

ip = request.remote_addr

return render_template('index.html', user_ip=ip)

if __name__ == '__main__':

app.run(

host="0.0.0.0",

port=int("80")

)

html代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<!DOCTYPE html>

<html lang="en">

<head>

<link href="bootstrap/3.0.0/css/bootstrap.min.css"

rel="stylesheet">

</head>

<body>

<p class="container">

<p class="header">

<h3 class="text-muted">How To Get The IP Address Of The User</h3>

</p>

<hr/>

<p>

You IP address is: <strong>{{user_ip}}</strong>

<p class="header">

<h3 class="text-muted">Code to retrieve the IP</h3>

</p>

<hr/>

<pre>

from flask import Flask, render_template, request

# Initialize the Flask application

app = Flask(__name__)

# Default route, print user's IP

@app.route('/')

def index():

ip = request.remote_addr

return render_template('index.html', user_ip=ip)

</pre>

</p>

</p>

</body>

</html>

希望本文所述对大家的Python程序设计有所帮助。

使方法一、用IP138数据库查询域名或IP地址对应的地理位置。

?

1234567891011121314151617181920212223242526

#-*- coding:gbk -*-import urllib2import re try: while True: ipaddr = raw_input("Enter IP Or Domain Name:") if ipaddr == "" or ipaddr == 'exit': break else: url = "http://www.ip138.com/ips138.asp?ip=%s&action=2" % ipaddr u = urllib2.urlopen(url) s = u.read() #Get IP Address ip = re.findall(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}',s) print "\n****** Below Result From IP138 Database *****" print "IP Address:",ip[0] #Get IP Address Location result = re.findall(r'(<li>.*?</li>)',s) for i in result:print i[4:-5] print "*"*45 print "\n" except: print "Not Data Find"

方法二、本来想调用阿里的ip接口查询ip归属地。结果发现阿里的接口非常不给力,主要是不准确,不过是免费的且有地区和ISP的信息。以下是实现代码