如何在Swift中验证IPv4和IPv6地址?

达雷尔根

IPv4地址相对容易验证:它们有4个八位字节,以数字分隔。每个八位位组都是0到255之间的整数。

IPv6地址难以验证。它们具有8个十六进制,每个均具有4个十六进制数字,并用冒号分隔。IPv6地址还具有缩短规则,可以删除每个附件中的前导零(每个附件中至少保留一个零)。另外,一个或多个连续的:0:附件可以缩短为::,但在每个IPv6地址中只能重复一次。

如何在Swift中验证IPv4和IPv6地址?

达雷尔根

对于带有String构造函数的IPv4Address和IPv6Address结构,Network框架有一个失败的初始化程序。简单地测试一下是否可以用字符串初始化Struct就足以验证地址。

这对于具有不平凡的缩短规则的长格式的IPv6地址特别有用。

import Network

let addresses = ["1.2.33.44","1.265.33.33","2001:db8::35:44","2001:db8::33::44"]

for address in addresses {
    if let _ = IPv4Address(address) {
        print("address \(address) is a valid IPv4 address")
    } else if let _ = IPv6Address(address) {
        print("address \(address) is a valid IPv6 address")
    } else {
        print("address \(address) is neither an IPv4 address nor an IPv6 address")
    }
}

输出:

address 1.2.33.44 is a valid IPv4 address
address 1.265.33.33 is neither an IPv4 address nor an IPv6 address
address 2001:db8::35:44 is a valid IPv6 address
address 2001:db8::33::44 is neither an IPv4 address nor an IPv6 address

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何过滤IPv4和IPv6地址?

来自分类Dev

从IPv4获取IPv6地址?

来自分类Dev

如何将IPV4地址与IPV6和IPV4一起放入powershell变量中?

来自分类Dev

存储和检索IPv4和IPv6地址

来自分类Dev

IPv4和IPv6地址检查器

来自分类Dev

为什么接口同时显示ipv6地址和ipv4

来自分类Dev

IPv4和IPv6地址检查器

来自分类Dev

如何手动将IPv4地址转换为IPv6地址?

来自分类Dev

如何手动将IPv4地址转换为IPv6地址?

来自分类Dev

如何使用AFNetworking将ipv4地址转换为ipv6?

来自分类Dev

IPv4地址0.0.0.0和IPv6地址:: 0是未指定的地址,不能用作目标地址

来自分类Dev

需要批处理文件以读取主机IPV4和IPV6地址

来自分类Dev

为什么我同时拥有一个IPv4和IPv6地址?

来自分类Dev

需要批处理文件以读取主机IPV4和IPV6地址

来自分类Dev

在Python中将IPv4地址转换为十六进制IPv6地址

来自分类Dev

正确的DNS IPv6地址但错误的IPv4地址的Endpoint Communication异常

来自分类Dev

查找给定IPv4 / IPv6地址的域(不是rDNS / PTR)

来自分类Dev

通过IPv4询问IPv6地址

来自分类Dev

Linux netstat显示ipv4映射的ipv6地址

来自分类Dev

在SQL Server中查询Maxmind GeoLite2 City Blocks csv以获取IPv6和IPv4地址的geoname_id

来自分类Dev

如何获取在虚拟机中与ipv6一起运行的ubuntu服务器的ipv4地址?

来自分类Dev

如何在/ etc / network / interfaces中添加其他IPv6地址?

来自分类Dev

如何在16.04中获得稳定的IPv6地址?

来自分类Dev

如何获得ipv6地址的Mac地址?

来自分类Dev

如何获取ipv6地址的Mac地址?

来自分类Dev

是否可以通过某种方式将IPV6地址转换为IPV4地址,或者始终检索IPV4地址?

来自分类Dev

匹配所有有效IPv4和IPv6地址的grep正则表达式

来自分类Dev

sockaddr和IPv6地址

来自分类Dev

解析IPv6地址

Related 相关文章

  1. 1

    如何过滤IPv4和IPv6地址?

  2. 2

    从IPv4获取IPv6地址?

  3. 3

    如何将IPV4地址与IPV6和IPV4一起放入powershell变量中?

  4. 4

    存储和检索IPv4和IPv6地址

  5. 5

    IPv4和IPv6地址检查器

  6. 6

    为什么接口同时显示ipv6地址和ipv4

  7. 7

    IPv4和IPv6地址检查器

  8. 8

    如何手动将IPv4地址转换为IPv6地址?

  9. 9

    如何手动将IPv4地址转换为IPv6地址?

  10. 10

    如何使用AFNetworking将ipv4地址转换为ipv6?

  11. 11

    IPv4地址0.0.0.0和IPv6地址:: 0是未指定的地址,不能用作目标地址

  12. 12

    需要批处理文件以读取主机IPV4和IPV6地址

  13. 13

    为什么我同时拥有一个IPv4和IPv6地址?

  14. 14

    需要批处理文件以读取主机IPV4和IPV6地址

  15. 15

    在Python中将IPv4地址转换为十六进制IPv6地址

  16. 16

    正确的DNS IPv6地址但错误的IPv4地址的Endpoint Communication异常

  17. 17

    查找给定IPv4 / IPv6地址的域(不是rDNS / PTR)

  18. 18

    通过IPv4询问IPv6地址

  19. 19

    Linux netstat显示ipv4映射的ipv6地址

  20. 20

    在SQL Server中查询Maxmind GeoLite2 City Blocks csv以获取IPv6和IPv4地址的geoname_id

  21. 21

    如何获取在虚拟机中与ipv6一起运行的ubuntu服务器的ipv4地址?

  22. 22

    如何在/ etc / network / interfaces中添加其他IPv6地址?

  23. 23

    如何在16.04中获得稳定的IPv6地址?

  24. 24

    如何获得ipv6地址的Mac地址?

  25. 25

    如何获取ipv6地址的Mac地址?

  26. 26

    是否可以通过某种方式将IPV6地址转换为IPV4地址,或者始终检索IPV4地址?

  27. 27

    匹配所有有效IPv4和IPv6地址的grep正则表达式

  28. 28

    sockaddr和IPv6地址

  29. 29

    解析IPv6地址

热门标签

归档