我已经阅读了很多关于UDP数据包大小的文章,但是无法得出结论.
许多服务将最大的UDP数据包限制为512字节(如dns)
给定互联网上的最小MTU为576,IPv4标头的大小为20字节,UDP标头为8字节.这留下了548个可用于用户数据的字节
我是否能够使用大小为548的数据包而不会出现数据包碎片?或者是DNS的创建者知道什么,以及为什么他们将其限制为512字节.
我能安全地高于548字节吗?
我正在寻找一个将标准IPv4地址转换为整数的函数.可用于相反功能的奖励积分.
解决方案应该在C#中.
我应该如何为我的应用程序选择IPv4多播地址?我可能需要多个(最终可能是整个范围),但只是想避免与其他应用程序冲突.
想法请:)
目前我刚从"本地使用"空间分配了一个任意的空间,239.255.42.99
在SQL Server中存储IPv4地址的最佳推荐数据类型是什么?
或者有人已经为它创建了用户SQL数据类型(.Net程序集)?
我不需要排序.
我们都知道IPv4的地址localhost是127.0.0.1(环回地址).什么是IPv6地址localhost和0.0.0.0我需要阻止一些广告主机.
我一直试图获得有效的IPv4验证正则表达式,但没有太多运气.似乎我曾经有过它(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4},但它会产生一些奇怪的结果:
$ grep --version
grep (GNU grep) 2.7
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.1
192.168.1.1
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.255
192.168.1.255
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.255.255
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.2555
192.168.1.2555
Run Code Online (Sandbox Code Playgroud)
我做了一个搜索,看看是否已经被问及回答,但其他答案似乎只是显示如何确定4组1-3个数字,或者不适合我.
有任何想法吗?谢谢!
我目前正在研究UDP套接字应用程序,我需要内置支持,以便IPV4和IPV6连接可以将数据包发送到服务器.
我希望有人可以帮助我,并指出我正确的方向; 我发现的大部分文档都不完整.如果你能指出Winsock和BSD套接字之间的任何差异,也会有所帮助.
提前致谢!
我在这里有一些代码在IPv4机器上运行良好,但在我们的构建服务器(IPv6)上它失败了.简而言之:
IPHostEntry ipHostEntry = Dns.GetHostEntry(string.Empty);
Run Code Online (Sandbox Code Playgroud)
GetHostEntry的文档说,传入string.Empty将获得localhost的IPv4地址.这就是我要的.问题是它在我们的IPv6机器上返回字符串":: 1:",我认为这是IPv6地址.
从任何其他IPv4机器ping机器可以提供良好的IPv4地址......并且从自身执行"ping -4 machinename"会给出正确的IPv4地址....但是从它自身定期ping它会产生":: 1:".
如何从本身获取此机器的IPv4?
是的,我需要知道公共IPv4空间中可能的IP总数.
我不知道在哪里可以获得所有IP地址范围的整齐列表,所以有人可以指向我自己计算资源或计算我的IP总数吗?
此外,通过公共IP,我的意思是不计算保留或私人范围IP地址..只有可以通过互联网访问的IP地址.
如何仅使用proc获取所有网络接口的(IPv4)地址?经过一番广泛调查后,我发现了以下内容:
ifconfig利用SIOCGIFADDR,需要打开套接字并提前了解所有接口名称.它也没有记录在Linux上的任何手册页中.proc包含/proc/net/dev,但这是一个接口统计信息列表.proc包含/proc/net/if_inet6,这正是我所需要的,但对于IPv6.proc,但实际地址很少使用,除非明确部分连接.getifaddrs,这是一个非常"神奇"的功能,你期望在Windows中看到它.它也在BSD上实现.然而,它不是非常面向文本的,这使得很难使用非C语言.