我目前正在做一个UDP套接字应用程序,我需要build立支持,以便IPV4和IPV6连接可以发送数据包到服务器。 我希望有人能帮助我,指出我的方向是正确的。 我发现的大部分文档都不完整。 如果你能指出Winsock和BSD套接字之间的区别,那也是有帮助的。 提前致谢!
我应该如何为我的应用程序select一个IPv4多播地址? 我可能需要不止一个(最终可能是整个范围),但只是想避免与其他应用程序的冲突。 数据包将完全包含在一个pipe理域中,可能是一个局域网 如果我的应用程序有几个独立的实例在同一个networking上使用,他们可以分别使用自己的多播地址 – 但是如果它们不这样做,它们将能够共存,它们只会有less量开销忽略彼此的包。 我的数据包已经包含一个“幻数”来避免问题 我会检查发件人的地址(我知道这个地址可以被欺骗),TTL和其他的东西,以防止意外的数据包被淹没。 想法请:) 目前我刚从“本地使用”空间239.255.42.99分配了一个任意的
什么应该是在SQL Server中存储IPv4地址最推荐的数据types? 或者也许有人已经为它创build了一个用户SQL数据types(.Net程序集)? 我不需要sorting。
我在这里有一些代码在IPv4机器上很好,但是在我们的构build服务器(IPv6)上失败了。 简而言之: IPHostEntry ipHostEntry = Dns.GetHostEntry(string.Empty); GetHostEntry的文档说传入string.Empty将得到你本地主机的IPv4地址。 这是我想要的。 问题是它在我们的IPv6机器上返回string“:: 1:”,我相信它是IPv6地址。 从任何其他IPv4机器ping机器给出了一个很好的IPv4地址…并从自己做一个“ping -4机器名”给出正确的IPv4地址….但定期从它自己给出“:: 1:”。 我怎样才能从本身获得这台机器的IPv4?
我一直在试图获得一个有效的IPv4validation正则expression式,但没有太多的运气。 (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4} ,但它会产生一些奇怪的结果: [chris@helios bashscripts]$ grep –version grep (GNU grep) 2.7 [chris@helios bashscripts]$ 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 [chris@helios bashscripts]$ 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 [chris@helios bashscripts]$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.255.255 [chris@helios bashscripts]$ 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 我做了一个search,看看这个问题是否已经被问及回答,但其他答案似乎只是简单地说明如何确定4组1-3个数字,或者不适合我。 有任何想法吗? 谢谢!
我已经检查了堆栈溢出问题API在Android应用程序中configuration静态IP地址 。 它适用于Android 2.3。 但是,在更高的API级别上没有运气。 例如,我把设置 android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_USE_STATIC_IP, "1"); android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_IP, "192.168.0.100"); android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_NETMASK, "255.255.255.0"); android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_DNS1, "192.168.0.254"); android.provider.Settings.System.putString(getContentResolver(), android.provider.Settings.System.WIFI_STATIC_GATEWAY, "192.168.0.254"); 但我回去检查一下: Setting –> Wi-Fi –> Long Press Access Point SSID –> Modify Network –> check Show advanced options IP Settings字段仍然是DHCP但不是Static 。 这是真的,我可以使用android.provider.Settings.System.getString()来取回我设定的。 它certificate设置保存在某个地方,但系统只是忽略它。 系统使用Android 3.x和4.x以外的设置,而不是android.provider.Settings.System ,根据接入点SSID设置。 我可以修改一个SSID的设置,就像它在Android 2.3上的工作方式一样吗?
我已经阅读了大量有关UDP数据包大小的文章,但是一直没有得出什么是正确的结论。 许多服务将最大的UDP数据包限制为512字节(如dns) 假设互联网上的最小MTU是576,并且IPv4报头的大小是20个字节,并且UDP报头是8个字节。 这留下了548个字节用于用户数据 我将能够使用数据包的大小为548没有数据包碎片? 或者,DNS的创build者知道的是,他们为什么将其限制在512字节。 我可以安全地超过548字节吗?
我正在寻找一个function,将标准的IPv4地址转换为一个整数。 奖金积分可用于相反的function。 解决scheme应该在C#中。