检查URL中是否存在IP地址返回其他内容返回的内容

时间:2014-02-27 16:41:54

标签: python python-3.x

如何使用Python检查URL中是否存在IP地址? 有没有可用于检查IP地址的功能? 例如:数据1&数据2获得IP然后将返回1,而数据3将返回0

data =['http://95.154.196.187/broser/6716804bc5a91f707a34479012dad47c/',
       'http://95.154.196.187/broser/',
       'http://paypal.com.cgi-bin-websc5.b4d80a13c0a2116480.ee0r-cmd-login-submit-dispatch-']

def IP_exist(data):
    for b in data:
        containsdigit = any(a.isdigit() for a in b)
        if containsdigit:
            print("1")
        else:
            print("0")

2 个答案:

答案 0 :(得分:1)

使用正则表达式:

>>> import re
>>> re.match(r'http://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/.*', 'http://95.154.196.187/broser/6716804bc5a91f707a34479012dad47c/')
<_sre.SRE_Match object at 0x7f4412043440>
>>> re.match(r'http://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/.*', 'http://paypal.com.cgi-bin-websc5.b4d80a13c0a2116480.ee0r-cmd-login-submit-dispatch-')
>>> 

要获得更细粒度的正则表达式here

答案 1 :(得分:0)

如果你想确保IP是正确的,你可以使用正则表达式从url中提取它,如其他答案所示,然后验证你可以使用netaddr它是相当简单的使用。

from netaddr import IP, AddrFormatError
ip = extract_ip_from_url(url)
try:
  IP(ip)
  return True
except AddrFormatError:
  return False