No, str.startswith()
не принимает значения.
Вам нужно будет разобрать первую часть и проверить ее как целое; фильтрация также легче сделать с помощью списка понимания:
[ip for ip in ip_addresses if 257 <= int(ip.partition('.')[0]) <= 310]
Альтернативой было бы использовать ipaddress
library; он будет отвергать любой недопустимый адрес с ipaddress.AddressValueError
исключения, и с теми адресами, которые начинаются с чем более 255 являются недействительными, вы можете легко кооптировать, что отфильтровать недействительные адреса:
import ipaddress
def valid_ip(ip):
try:
ipaddress.IPv4Address(ip)
except ipaddress.AddressValueError:
return False
else:
return True
[ip for ip in ip_addresses if valid_ip(ip)]
части действительного IP будет находиться в диапазоне от 0 до 255 (оба включительно). – thefourtheye