标签: ipv6

如何支持IPv4和IPv6连接

我目前正在研究UDP套接字应用程序,我需要内置支持,以便IPV4和IPV6连接可以将数据包发送到服务器.

我希望有人可以帮助我,并指出我正确的方向; 我发现的大部分文档都不完整.如果你能指出Winsock和BSD套接字之间的任何差异,也会有所帮助.

提前致谢!

c++ sockets winsock ipv4 ipv6

52
推荐指数
2
解决办法
4万
查看次数

从Dns.GetHostEntry()获取IPv4地址

我在这里有一些代码在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?

.net c# dns ipv4 ipv6

50
推荐指数
4
解决办法
10万
查看次数

如何在JRE上禁用IPv4 IP堆栈的IPv6堆栈?

正如您在下面的屏幕截图中看到的那样,eclipse和Android SDK Manager(以及其他Java程序)正在尝试通过IPv6 TCP/IP堆栈连接到IPv4 Internet IP,而Proxifier(代理管理器程序,永不服务)无法支持.

Eclipse连接到Internet失败Android SDK Manager连接到Internet时失败

我如何在Java中禁用IPv6?

java jvm ipv6 jvm-arguments

42
推荐指数
3
解决办法
8万
查看次数

使用Ehcache多播获取"无法分配请求的地址"java.net.SocketException

获取java.net.SocketException试图启动一个多播提供程序时:

2013-09-11 11:45:44,204 [main] ERROR net.sf.ehcache.distribution.MulticastRMICacheManagerPeerProvider: Error starting heartbeat. Error was: Can't assign requested address
java.net.SocketException: Can't assign requested address
at java.net.PlainDatagramSocketImpl.join(Native Method)
at java.net.AbstractPlainDatagramSocketImpl.join(AbstractPlainDatagramSocketImpl.java:178)
at java.net.MulticastSocket.joinGroup(MulticastSocket.java:319)
at net.sf.ehcache.distribution.MulticastKeepaliveHeartbeatReceiver.init(MulticastKeepaliveHeartbeatReceiver.java:88)
at net.sf.ehcache.distribution.MulticastRMICacheManagerPeerProvider.init(MulticastRMICacheManagerPeerProvider.java:95)
Run Code Online (Sandbox Code Playgroud)

java multicast ehcache ipv6 multicastsocket

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

如何在MySQL的单个列中存储128位数字?

我正在更改一些表以将IP地址存储为数字而不是字符串.这对于IPv4来说很简单,其中32位地址可以适合整数列.但是,IPv6地址是128位.

MySQL文档仅示出了数字类型多达64个比特("BIGINT").

我应该坚持使用char/varchar进行IPv6吗?(理想情况下,我想对IPv4和IPv6使用相同的列,所以我不想这样做).

有没有比使用两个bigint列更好的东西?每当使用地址时,我宁愿不必将值分解为上限和下限/ 64.

我正在使用MariaDB 5.1 - 如果在更高版本的MySQL中有更好的解决方案,那么很高兴知道,虽然没有立即帮助.

[编辑]请注意,我建议采用最佳方式执行此操作 - 很明显,有多种方法可以做到这一点(包括现有的字符串表示),但是(在性能方面)最好?(即如果某人已经完成了分析,这将使我无法做到这一点,或者如果我遗漏了一些明显的东西,那么知道也很好).

mysql types ipv6

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

主机名的IPv6地址

Linux中是否有任何命令可以获取主机名的IPv6地址?

我试过了NSLookup,但似乎没有选择获取指定主机名的IPv6地址,或者我错过了它.

我有一个处理IPv6的C程序,我想通过使用不同的方法来获取主机的IPv6地址来检查我是否得到了正确的结果.

sockets linux networking ipv6

35
推荐指数
2
解决办法
7万
查看次数

如何在关系数据库中存储与IPv6兼容的地址

我怎么做?

现在,IPv6将不会被使用,但我需要设计应用程序以使其为IPv6做好准备.有必要在MySQL数据库中存储IP地址和CIDR块(也是BGP NLRI,但这是另一个故事).我总是使用INT for IPv4 +一个TINYINT用于masklen,但IPv6是128位.

最适合的方法是什么?2xBIGINTCHAR(16)用于二进制存储?CHAR(39)用于文本存储?8xSMALLINT在专门的桌子?

你会推荐什么?

mysql ipv6

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

如何在运行时设置java.net.preferIPv4Stack = true?

我需要禁用IPv6.为此,java文档表明设置jvm属性java.net.preferIPv4Stack=true.

但我不明白如何从代码本身做到这一点.

许多论坛演示了从命令提示符执行此操作,但我需要在运行时执行此操作.

java broadcast ipv4 ipv6

34
推荐指数
3
解决办法
9万
查看次数

如何批量验证字符串是有效的 IPv4 或 IPv6 地址?

我需要在批处理脚本中验证字符串是否为有效的 IPv4 或 IPv6 地址,但显然批处理没有解析 IP 地址的简单方法。

如何在使用外部工具的情况下在批处理中执行此操作?“外部工具”是指正常 Windows 安装中尚不存在的东西。

“有效的 IPv4 或 IPv6 地址”是指采用 IP 地址格式的字符串,类似字符串的误报999.999.999.999是可以的(即使一些基本过滤是受欢迎的)。根据经验,解决方案至少应该能够区分错误消息和地址。

我知道一个类似的问题已经存在,但是这个问题没有考虑 IPv6,而且它对“有效 IPv4 地址”的定义更加严格(类似999.999.999.999是不可接受的)。

batch-file ip-address ipv4 ipv6 windows-scripting

34
推荐指数
4
解决办法
1762
查看次数

在PHP中使用IPv6地址

在仔细搜索之后,我注意到PHP中用于处理IPv6的功能略有不足.为了我个人的满意,我创建了一些功能来帮助过渡.

IPv6ToLong()函数是此处提出的临时解决方案:如何在关系数据库中存储与IPv6兼容的地址.它会将IP分成两个整数并将它们返回一个数组.

/**
 * Convert an IPv4 address to IPv6
 *
 * @param string IP Address in dot notation (192.168.1.100)
 * @return string IPv6 formatted address or false if invalid input
 */
function IPv4To6($Ip) {
    static $Mask = '::ffff:'; // This tells IPv6 it has an IPv4 address
    $IPv6 = (strpos($Ip, '::') === 0);
    $IPv4 = (strpos($Ip, '.') > 0);

    if (!$IPv4 && !$IPv6) return false;
    if ($IPv6 && $IPv4) $Ip = substr($Ip, strrpos($Ip, …
Run Code Online (Sandbox Code Playgroud)

php ip ipv6

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