首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从HTML字符串中提取IP地址?

如何从HTML字符串中提取IP地址?
EN

Stack Overflow用户
提问于 2010-05-23 14:57:25
回答 3查看 70.1K关注 0票数 27

我想使用Python从字符串(实际上是一行HTML)中提取IP地址。

代码语言:javascript
复制
>>> s = "<html><head><title>Current IP Check</title></head><body>Current IP Address: 165.91.15.131</body></html>"

-- '165.91.15.131‘就是我想要的!

我尝试使用正则表达式,但到目前为止我只能得到第一个数字。

代码语言:javascript
复制
>>> import re
>>> ip = re.findall( r'([0-9]+)(?:\.[0-9]+){3}', s )
>>> ip
['165']

但我对reg-expression并不是很了解;上面的代码是从网络上的其他地方找到并修改的。

EN

回答 3

Stack Overflow用户

发布于 2010-05-23 15:11:32

可以使用以下正则表达式仅捕获有效的IP地址

代码语言:javascript
复制
re.findall(r'\b25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\.25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\.25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\.25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\b',s)

返回

代码语言:javascript
复制
['165', '91', '15', '131']
票数 6
EN

Stack Overflow用户

发布于 2013-01-07 13:24:59

代码语言:javascript
复制
import re

ipPattern = re.compile('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')

findIP = re.findall(ipPattern,s)

findIP contains ['165.91.15.131']
票数 4
EN

Stack Overflow用户

发布于 2013-01-22 03:23:15

我就是这么做的。我觉得它太干净了

代码语言:javascript
复制
import re
import urllib2

def getIP():
    ip_checker_url = "http://checkip.dyndns.org/"
    address_regexp = re.compile ('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')
    response = urllib2.urlopen(ip_checker_url).read()
    result = address_regexp.search(response)

    if result:
            return result.group()
    else:
            return None

get_IP()将ip返回为字符串或无

如果您喜欢更精确的解析,或者可能更改web服务提供商,则可以用address_regexp替换其他正则表达式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2890896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档