如何使用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")
答案 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