首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >区分IP地址和FQDN

区分IP地址和FQDN
EN

Stack Overflow用户
提问于 2019-10-02 10:34:54
回答 2查看 451关注 0票数 0

您知道是否有任何模式/逻辑可用于区分python中的IP地址和FQDN?我有一个处理用户输入的脚本,它可以是ip或fqdn,如果是ip,我想要进行ip验证检查,如果是fqdn,则不进行验证检查。

代码语言:javascript
复制
addy = "1.2.3.4"
a = addy.split('.')
match = re.search('^(([0-9]|[0-9][0-9]|[0-9][0-9][0-9]))$', a[0])
if match is not None:
   if is_valid_ipv4(addy) == True:
      # code continues

什么是艾迪是fqdn?如果输入字符串只是IP地址,我希望调用is_valid_ipv4。我需要FQDN的模式吗?如何区分IP和FQDN?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-02 10:41:22

Python知道IP地址。同时,这个答案为验证FQDN提供了一个很好的regexp。

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

addy = "192.0.2.1"

fqdn_re = re.compile('(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z]{2,63}\.?$)')

try:
    ip_addy = ipaddress.ip_address(addy)
    if ip_addy.version == 4:
        print("IPv4 address")
    elif ip_addy.version == 6:
        print("IPv6 address")
except ValueError:
    if fqdn_re.search(addy):
        print("FQDN address")
    else:
        print("Invalid address")
票数 3
EN

Stack Overflow用户

发布于 2019-10-02 10:38:21

就我个人而言,我希望使用regex。在Python中,您可以使用re包。

为每个(IP和FQDN)编写一个模式,并查看哪一个得到匹配(re.match())。

以下是一些有用的链接:

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

https://stackoverflow.com/questions/58199796

复制
相关文章

相似问题

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