forked from luyishisi/The_python_code
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathget_ip.py
More file actions
67 lines (51 loc) · 1.79 KB
/
get_ip.py
File metadata and controls
67 lines (51 loc) · 1.79 KB
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import urllib2, httplib
from BeautifulSoup import BeautifulSoup
def getIpAddr():
'''从http://www.ip.cn网站获取外网ip和地理位置'''
url = 'http://www.ip.cn'
html = urllib2.urlopen(url).read()
soup = BeautifulSoup(html)
# 通过<div class="well">标签找到位置信息
find_div = soup.find('div',{'class':'well'})
ip = find_div.code.text
# 定位地理位置信息
# 1.获得中文地理位置
no = find_div.contents[0].text.find(';')
addr = find_div.contents[0].text[no + 1:]
# 2.获取en文地理位置
# <p>GeoIP: Nanjing, Jiangsu, China</p>
addrEn = find_div.contents[1].text
# 得到拼音字符串,然后进行分割,得到addr列表
addrEn = addrEn.split(':')
# addr取原列表中的最后一个元素
addrEn = addrEn[-1]
# 将包含位置信息的字符串用','再次分割,得到城市、省份
addrEn = addrEn.split(',')
# 去除字符串两边多余的空格
print '外网IP:', ip
print addr
for n in range(len(addrEn)):
addrEn[n] = addrEn[n].strip()
print addrEn[n], # 逗号是为了print后不换行
#进一步化 浙江省杭州市---》杭州
name = addr
if name.find(u"省") !=-1:# 包含'省'
#print u'有省'
name=name.split(u'省')[1]
if name.find(u"市") != -1:#包含‘市’
#print u'有市'
me = addr
if name.find(u"省") !=-1:# 包含'省'
#print u'有省'
name=name.split(u'省')[1]
if name.find(u"市") != -1:#包含‘市’
#print u'有市'
name=name.split(u'市')[0]
print (name)
fileHandle = open ( 'test.txt', 'w' )
fileHandle.write ( name )
fileHandle.close()
if __name__ == '__main__':
getIpAddr()