我正在寻找一个以 IPv6 地址作为参数并返回域名的函数。
明确地说,2a00:1450:8006::68 返回 ipv6.google.com。
(目的是将该域名提供给 getaddrinfo 函数。)
谢谢 :-)
edit1:我已经尝试过getaddrinfo("2a00:1450:8006::68", "http", NULL, &result);,它返回“不支持主机名的地址系列”并getaddrinfo("ipv6.google.com", "http", NULL, &result);返回错误“没有地址与热名关联”。
EDIT2:我同意你的观点,我的 IPV6 系统有问题,我尝试过http://test-ipv6.com/,看来我没有 IPV6 地址,但ifconfig它返回:
adr inet6: fe80::15b:fcff:fe65:d516/64 Scope:Lien
Run Code Online (Sandbox Code Playgroud) 我需要某种方法来迭代两个 IPv6 地址之间的地址范围。即,如果第一个 IP 是2a03:6300:1:103:219:5bff:fe31:13e1,第二个 IP 是2a03:6300:1:103:219:5bff:fe31:13f4,我想访问该范围内的 19 个地址。
对于 IPv4,我只需在结果结构中inet_aton进行字符串表示和获取htonl,s_addr但是对于 IPv6 我该如何做到这一点呢?
为了简化:
struct in6_addr sn,en;
long i;
s="2a03:6300:1:103:219:5bff:fe31:13e1";
e="2a03:6300:1:103:219:5bff:fe31:13f4";
inet_pton(AF_INET6,s,&sn);
inet_pton(AF_INET6,e,&en);
Run Code Online (Sandbox Code Playgroud)
[..]
for (i = _first_ipv6_representation; i<=_second_ipv6_representation; i++){
/* stuck here */
}
Run Code Online (Sandbox Code Playgroud) 我知道可以将 IPv4 中的 IP 写为整数,例如2130706433而不是127.0.0.1。
造成这种可能性的原因是什么?
IPv6 有类似的表示法吗?
我尝试ping -6 1ping ::1,但这不起作用(主机不存在)。
Linux服务器启动时,会发出一些组播数据包。目的MAC地址是33:33:00:00:00:02。
我想知道多播地址是否是众所周知的?是不是有什么特殊的意义呢?是否有众所周知的组播MAC地址列表?
对以下 IPv6 地址使用零压缩时
2001:0DB8:0000:CD30:0000:0000:0000:0000/60
Run Code Online (Sandbox Code Playgroud)
为什么这是不正确的:
2001:DB8::CD30::/60
Run Code Online (Sandbox Code Playgroud)
...虽然这是:
2001:DB8:0:CD30::/60
Run Code Online (Sandbox Code Playgroud) 基本上,我想知道如何更改我的 server.js 代码以使其能够与 IPv6 配合使用?我在某处读到,您只需要在“listen(80)”行旁边添加您的 IPv6 地址,这将使它看起来像这样“listen (80, “IPv6”);”
然而,在我的代码中,情况比这要复杂一些。
以下是与服务器相关的代码行:
const
server = http.createServer(options, app),
.
.
.
var ss=tls.createServer(options, function (box) {
box.setEncoding('utf8');
.
.
ss.listen(8010);
.
.
var sockets = require('socket.io').listen(server).of('/el');
.
.
.
if (!module.parent) {
server.listen(port, function () {
console.log('Listening', this.address());
})
}
Run Code Online (Sandbox Code Playgroud) IPV6我正在寻找将地址转换为数字的公式IP。这需要使用我们拥有的 geoip 位置信息进行映射。
输入IPV6地址:2001:0db8:0000:0000:0000:ff00:0042:8329
输出转换后的 IP 号码:42540766411282592856904265327123268393
谢谢...
我正在我的 iOS 和 Android 应用程序中开发电子邮件发送功能。
这是使用 OpenSSL 通过 Gmail 发送电子邮件的功能。
我正在使用 Delphi 10.2.3 Tokyo 和 Indy 10。
我向 iTunes Connect 提交了我的 iOS 应用程序,但他们拒绝了我的应用程序,因为此功能在 IPv6 中不起作用。
他们说
我们在通过连接到 IPv6 网络的 Wi-Fi 运行 iOS 11.4.1 的 iPad 和 iPhone 上进行审核时,发现您的应用存在一个或多个错误。
他们还向我发送了错误的屏幕截图:
解析地址 smtp.gmail.com 时发生错误:(8)
如何修复此错误以便正确使用 IPv6?我的代码如下:
Procedure MailSend;
Var
Connected: Boolean;
Begin
IdSMTP := TIdSMTP.Create(nil);
try
IdSMTP.Host := 'smtp.gmail.com';
IdSMTP.Port := 587;
IdSMTP.Username := 'xxxx@gmail.com'; // UserName
IdSMTP.Password := 'xxxx'; // Password
SSL := TIdSSLIOHandlerSocketOpenSSL.Create;
try
SSL.Host := IdSMTP.Host;
SSL.Port := IdSMTP.Port; …Run Code Online (Sandbox Code Playgroud) 我进行了更多探索以找出为什么从 ipv6 中删除校验和,但我无法得到确切的答案,IPv6 中的可变字段如何受到保护?