我正在开展一个与网络/压缩相关的项目.其中一台机器是Windows Vista,已经配置了IPv6.
当我尝试时ipconfig,我会看到以下格式的地址:fe80::9dc8:72fa:aacd:76e2%10
但是当我尝试从另一台机器ping这台机器时ping fe80::9dc8:72fa:aacd:76e2%10,我收到以下错误:
Ping request could not find host fe80::9dc8:72fa:e327:76e2%10.
Please check the name and try again.
任何想法/评论都非常有帮助.
由于Apple要求提交审核的应用程序必须从2016年6月1日起支持仅支持IPv6的网络,因此我正在检查是否需要替换我的应用中的某些API /库.但是我对网络和一些相关方面知之甚少,因此我无法对此有明确的答案,并希望寻求帮助.
关于Apple提供的支持IPv6 DNS64/NAT64网络的文档,它指出应用程序应该没问题,如果符合以下情况则无需执行更新:
您正在使用的高级网络API比如写一个客户端应用程序NSURLSession和CFNetwork的框架,你的名字连接
通过这个我把它作为2个标准:
所以这里的问题是:
据我所知,NSURLConnection基于CFNetwork,这是否意味着如果我的应用程序使用NSURLConnection,我也会没事的?(我在上面的文档中看到NSURLConnection在这张图片中也有提及,但是我不太确定这一点,因为NSURLConnection有点老了?似乎我找不到提及IPv4和IPv6支持的文件.)
根据标准"按名称调用",这是否意味着无论我使用的是NSURLSession还是NSURLConnection,如果我碰巧通过IPv4地址调用或访问某些资源/ API,会发生什么不好的事情?(我已经做了一些研究,根据我的理解,像iOS 9+的iOS设备这样的客户端将始终使用合成的IPv6地址访问IPv4服务器,因此如果我通过IPv4地址调用,客户端将无法访问资源?)
谢谢你的帮助!
如果在接口上手动删除了IPv6链路本地地址,是否有办法在不关闭接口的情况下获取链路本地地址?该要求源于需要在接口上保留(IPv4)现有连接,但也需要在其上获取链路本地地址.
我一直在使用Facebook图形API进行身份验证的facebook应用程序,最近facebook升级到IPv6,我的网络不支持IPv6,所以我的所有调用都开始返回Host无法访问错误,我在facebook上搜索了bug,发现我们仍然可以使用CURL CURLOPT_IPRESOLVE强制对facebook的请求使用IPv4.
现在,当我尝试使用curl向Facebook Graph API发送请求时,我得到通知:使用未定义的常量CURLOPT_IPRESOLVE - 假设为'CURLOPT_IPRESOLVE'
我想知道如何启用对此常量的支持,或者如何在php中禁用IPv6支持,以便我可以使用IPv4向Facebook Graph API发送请求.
我的代码是
$url = ("https://graph.facebook.com/me/access_token?tokrn");
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$contents = curl_exec($c);
$err = curl_getinfo($c,CURLINFO_HTTP_CODE);
curl_close($c);
Run Code Online (Sandbox Code Playgroud)
谢谢
在这个问题上,我正在处理IPv6网络地址空间,所以长度是2^(128-subnet).
似乎python(至少在这台机器上)将处理最多64位有符号数作为返回值__len__().如此len(IP('2001::/66'))有效,但len(IP('2001::/65'))失败了.
from IPy import IP
len(IP('2001::/64'))
Traceback (most recent call last):
File "test.py", line 2, in <module>
len(IP('2001::/64'))
OverflowError: long int too large to convert to int
Run Code Online (Sandbox Code Playgroud)
有问题的IPy库位于https://github.com/haypo/python-ipy.
关于如何处理这个问题的任何建议,或暗示这可能是我遇到的限制?
我可以用什么库来检查IP地址是否在给定的子网中?我可以找到像Apache Commons SubnetUtils(SubnetUtils.SubnetInfo.isInRange)这样的库,但是许多库还不支持IPv6.
此代码在最后一行抛出ArgumentOutOfRangeException
var initAddress = IPAddress.Parse("1.65.128.190");
var ipv6Address = initAddress.MapToIPv6();
Assert.IsTrue(ipv6Address.IsIPv4MappedToIPv6);
var ipv4Address = ipv6Address.MapToIPv4();
Run Code Online (Sandbox Code Playgroud)
谁能解释为什么MapToIPv6()和MapToIPv4()不兼容往返?
编辑:异常源自IP地址构造函数,由MapToIPv4()调用.
此外,当第一行是
var initAddress = IPAddress.Parse("1.65.128.90");
Run Code Online (Sandbox Code Playgroud)
没有例外被抛出
edit2:正如@Luaan转载的那样,我添加了标签[bug-reporting].还添加了[bcl].让我们看看是否有MS人员跟踪这些标签:)
edit3:在Connect https://connect.microsoft.com/VisualStudio/feedback/details/871964上报告
当我检查的输出IPGlobalProperties.GetActiveTcpListeners(),我看到听众的0.0.0.0以及::.
我相信在端口上0.0.0.0监听相当于监听任何网络适配器上的端口,至少我对Windows套接字API的记忆就是这样.
对我而言,这::也意味着在IPv6的用语中具有相同的意义,因此侦听器[::]:49156将侦听49156所有IPv6网络适配器上的[::1]:1434端口1434,其中只有IPv6环回适配器上的端口.
它是否正确?
我假设IPv6侦听端点仅适用于IPv6适配器.也就是说,如果适配器只有一个IPv4地址,那么49156侦听器就不会收到与该端口的连接[::]:49156?
另外,有人注意到MSDN文章GetActiveTcpListeners()错误地声明返回的对象"包括除了 Listen状态以外的所有TCP状态的侦听器."?
昨天,我提交了我的应用程序进行审核,但是我收到了Apple发来的消息:
我们在连接到IPv6网络的Wi-Fi上运行iOS 9.3.2的iPad iPhone上查看了应用程序中的一个或多个错误.
具体来说,经过审核,我们发现应用程序仍然遇到加载问题,无法查看应用程序内容.
我的应用程序使用离子框架,我该如何解决这个问题呢?
我已经使用域来访问我的服务器,但这个问题仍然存在.
为了好玩,我想更好地理解IPv6地址中的构建块或元素.
根据我的理解,以下是基础知识:
以上几点都是正确的吗?
请不要告诉我阅读RFC.关于这个问题有几个,实际上没有一个简单的例子来描述各种编码机制.我相信很多人会欣赏带有示例的简单列表.
在线测试工具 最近的在线工具是 http://www.dominicsayers.com/source/beta/is_email/test/, 但这些消息令人困惑,实际上并没有用简单的英语说出什么是对错,为什么.它实际上也是为电子邮件构建的,当然可能包含IPv6地址,因此它并不完全理想.
ipv6 ×10
ios ×2
ipv4 ×2
networking ×2
.net ×1
curl ×1
facebook ×1
ios9 ×1
java ×1
link-local ×1
linux ×1
linux-kernel ×1
long-integer ×1
ping ×1
python ×1
sockets ×1
subnet ×1
tcp ×1
windows ×1