Browse Source

windows python 2 doesn't provide inet_pton

pull/2558/head
David Lord 7 years ago
parent
commit
333865ea34
No known key found for this signature in database
GPG Key ID: 7A1C87E3F5BC42A8
  1. 12
      flask/helpers.py

12
flask/helpers.py

@ -42,8 +42,7 @@ from jinja2 import FileSystemLoader
from .signals import message_flashed
from .globals import session, _request_ctx_stack, _app_ctx_stack, \
current_app, request
from ._compat import string_types, text_type
from ._compat import string_types, text_type, PY2
# sentinel
_missing = object()
@ -1002,12 +1001,21 @@ def total_seconds(td):
def is_ip(value):
"""Determine if the given string is an IP address.
Python 2 on Windows doesn't provide ``inet_pton``, so this only
checks IPv4 addresses in that environment.
:param value: value to check
:type value: str
:return: True if string is an IP address
:rtype: bool
"""
if PY2 and os.name == 'nt':
try:
socket.inet_aton(value)
return True
except socket.error:
return False
for family in (socket.AF_INET, socket.AF_INET6):
try:

Loading…
Cancel
Save