标签: ipv6

IPv6地址验证和规范化

您使用了哪些库?它们彼此之间有多兼容?或者您是否编写了自己的解析例程?

我对Java,C++,Python和JavaScript的相互兼容的实现特别感兴趣,它们支持:

  • 零压缩(" ::")
  • IPv4映射地址(" ::ffff:123.45.67.89")
  • 规范化(包括简短形式,用于人类可读性)
  • CIDR风格的网络掩模(如最后的" /64")

javascript c++ python java ipv6

5
推荐指数
3
解决办法
2万
查看次数

如何将IPv6地址与Perl正则表达式匹配?

所以我需要匹配一个可能有也可能没有掩码的ipv6地址.不幸的是我不能只使用库来解析字符串.

掩码位很容易,在这种情况下:

(?:\/\d{1,3})?$/
Run Code Online (Sandbox Code Playgroud)

困难的部分是ipv6地址的不同格式.它需要匹配::牛肉,牛肉::牛肉::牛肉等.

更新:我快到了..

/^(\:\:([a-f0-9]{1,4}\:){0,6}?[a-f0-9]{0,4}|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){0,6}?\:\:|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){1,6}?\:\:([a-f0-9]{1,4}\:){1,6}?[a-f0-9]{1,4})(\/\d{1,3})?$/i
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我仅限于使用perl的正则表达式.

regex perl ipv6

5
推荐指数
3
解决办法
1万
查看次数

在Python中发送和接收IPv6链路本地多播UDP数据报?

以下是简单的IPv4 UDP广播,然后监听所有接口.

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)
sock.bind(("", 1337))
sock.sendto("hello world", ("255.255.255.255", 1337))
while True:
    data, addr = sock.recvfrom(0x100)
    print "received from {0}: {1!r}".format(addr, data)
Run Code Online (Sandbox Code Playgroud)

我想调整它来发送和接收IPv4和IPv6.

我尽可能多地阅读并尽可能多地阅读并相信以下内容大致是我需要采取的路线:

  1. 创建IPv6套接字.
  2. 将套接字添加到链接或站点本地多播组.
  3. 将UDP数据包发送到正在使用的组的多播地址.

进一步的信息我可能需要绑定到几个接口,并告诉套接字使用setsockopt()它还应该接收多播数据包.最后getaddrinfo()可以全面使用,以优雅地"退回"到IPv6不可用的IPv4.

我已经实现了很多,但主要是在多播部分上发现了.Python中的完整代码示例,或者对所需常量和地址的生动描述是首选.

python posix udp multicast ipv6

5
推荐指数
1
解决办法
6746
查看次数

IP地址是否与本地计算机位于同一子网上(支持IPv6)

有没有人有一些代码可以确定IP地址(IPv4或IPv6)是否与运行应用程序的计算机位于同一子网上?我已经看过很多用IPv4做的代码示例,但我找不到任何支持IPv6的代码.

编辑:

我不确定我是否理解v4和v6之间的所有差异,所以这里有一点我的问题.我有一个为Internet客户端和Intranet客户端提供服务的应用程序,也就是说有些客户端与服务器位于同一物理网络上.所以有时客户端之间有路由器,有时候没有路由器.使用IPv4,我可以通过检查服务器IP地址和子网的客户端IP地址来确定这一点,这样如果我的服务器的IP和子网掩码分别是:

192.168.123.15 255.255.255.0

并且服务器从192.168.123.100接收客户端请求我知道客户端和服务器之间没有路由器.但是,如果服务器收到来自192.168.1.100或67.7.23.4的客户端请求,我知道这些客户端和服务器之间存在路由器.在.Net中,我可以收集客户端和服务器IP地址(v4和v6)但我找不到IPv6子网掩码.

有没有办法在.Net中收集这些信息,还是我误解了IPv4和IPv6之间有什么区别?

编辑x2:

我在MS连接站点上发布了这个,看看它们是否正在处理,或者是否有原因他们没有向UnicastIPAddressInformation类添加IPv6Mask属性.

https://connect.microsoft.com/VisualStudio/feedback/details/643031/unicastipaddressinformation-class-has-no-ipv6mask-property

我也在同一时间在MSDN论坛上发布了同样的问题.1800多个观点,而不是一个回复.猜猜我不是唯一一个对此感到好奇的人.

http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/dd30e161-9be5-4d70-97c0-22e2756ce953

.net c# ipv6 subnet

5
推荐指数
1
解决办法
4192
查看次数

通过IPv6获取远程MAC地址

是否可以通过IPv6(没有WMI)从同一网络中的另一台PC获取MAC?使用IPv4很容易(ARP).

IPv6使用"邻居发现协议"(NDP)来获取MAC地址..Net中有没有这方面的方法?

c# network-programming ipv6 arp

5
推荐指数
1
解决办法
3263
查看次数

IPv6会帮助形成垃圾邮件发送者吗?

开发Web应用程序的一个主要(主要)部分是使其具有防滥用性,更具体地说是防垃圾邮件.

我刚刚注意到,今天的反垃圾邮件插件管理请求的形式,填写,提交,并重新提交它(例如,在情况下,CMS询问更多信息,表单数据实际上正在前)......所有来自不同IPv4地址.

首先,两个问题:

  • 他们使用什么技术在几秒钟内通过不同的IP路由属于同一会话(表单提交)的不同请求?
  • 我可以编写基于IP的哈希来检查请求表单的IP和提交表单的IP是否相同; 但是:有没有合理的理由说明用户(即不是垃圾邮件制造者)可能想要从不同的IP提交表单而不是请求它的IP?

那么,对于这个问题的关键:

凭借其几乎无限的地址数量,IPv6是否会让垃圾邮件制造者更容易让网站管理员和网络应用程序开发人员的生活变得悲惨?

也许最终用户都拥有自己的静态IPv6,这对我们来说是件好事,因为我们可以更轻松地阻止机器受损的用户.

或者垃圾邮件发送者可以继续从不同角度攻击我们,从不使用相同的IPv6两次...我不太清楚它在技术上如何工作,特别是因为我甚至不了解它如何与IPv4一起工作.

在最高级别的IPv4地址耗尽的那天,问题或多或少地提出了问题.

ipv4 ipv6 spam

5
推荐指数
1
解决办法
486
查看次数

是否有针对ipv4和ipv6地址的标准.NET解码器?

我想写一个相当简单的客户端 - 服务器网络应用程序.我只使用纯粹的IPv4网络,但是对于面向未来的代码我会很高兴.我可能会使用TcpListener/TcpClient,因为对WCF的初步调查显示它设置过于复杂并且难以理解.

对于客户端,.NET是否提供了一种工具来自动解码包含IPv4或IPv6地址的字符串(其中IPv4地址包含端口号)?奖励积分,如果它可以解析域名.

对于服务器端,我听说IPv6不使用端口号,那么什么相当于要监听的端口,是否有一种标准方法可以区分IPv4端口号字符串和IPv6等价物?没关系,IPv6服务有16位端口号,就像IPv4服务器一样.

.net ipv4 ipv6

5
推荐指数
2
解决办法
2719
查看次数

如何在Vista/Windows7中添加持久IPv6地址?

我想使用API​​调用或注册表编辑添加持久IPv6地址.我目前已经实现了一个使用CreateUnicastIpAddressEntryAPI成功添加IPv6地址的代码,但是当重置适配器或重新启动机器时,IP地址会被破坏(如MSDN文档中所述).

使用IPv4,很容易做到.只需使用AddIPAddressAPI结合注册表项即可获得所需的结果.

我试图在Windows注册表中找到用于保存IPv6地址但没有任何成功的任何条目.MSDN文档建议用来netsh.exe完成任务,但后来我确信netsh.exe正在做一些API调用或注册表项来完成这项任务(微软在任何地方都没有记录).

怎么能实现这一目标?

winapi ip-address ipv6

5
推荐指数
1
解决办法
1721
查看次数

配置服务器以实现IPv6兼容性(适用于被拒绝的iOS应用使用的API)

我意识到已经有很多关于Stack Overflow的问题已经被苹果公司拒绝使用他们的iOS应用程序,因为它们不适用于仅支持IPv6的网络.

我已经检查了我的代码,以确保没有硬编码的IP地址(绝对没有),也没有使用旧的可达性(根本没有)或其他低级网络框架(我们只使用NSURLSession).我已经通过我的机器上的NAT64测试网络,应用程序(似乎)工作正常.

这是一个Xamarin应用程序,它通过HTTPS(而不是其他网络连接)与API通信.

我发现的一些答案表明,此问题的解决方案需要对服务器进行配置更改.

所以我的问题很广泛,需要进行哪些配置更改?更具体地说,您是否需要域名上的AAAA记录?如果是这样,应该如何配置?

作为一名软件开发人员,我更多地解决这个问题,因此没有详细了解IPv6如何工作以及需要哪些服务器更改.

ipv6 xamarin.ios ios xamarin

5
推荐指数
1
解决办法
442
查看次数

Spring启动应用程序在没有-Djava.net.preferIPv4Stack = true和-Djava.net.preferIPv4Addresses参数的情况下侦听IPv6


关于Spring boot jar的问题.在生产机器上运行jar时:

java -jar xyz.jar

它不响应我的要求.因为它正在监听ipv6.

但当我运行应用程序为
java -jar xyz.jar -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses时

它回应了我的要求.

是生产机器的配置导致应用程序通过ipv6监听,还是有其他原因?

幸运的是
-Djava.net.preferIPv4Stack = true
-Djava.net.preferIPv4Addresses
参数解决了我的问题.但我很困惑!!

注意:Tomcat用作嵌入式服务器.
Spring启动版1.5.4 RELEASE

spring jar ipv4 ipv6 spring-boot

5
推荐指数
1
解决办法
1982
查看次数