标签: ipv6

初始化联合

上一个代码:

struct Inet_address{
char v4[4];
};
extern "C" Inet_address Inet_loopback = 
{
  {127,0,0,1}
};
Run Code Online (Sandbox Code Playgroud)

修改后:

我已经使Inet_address成为一个联合这里Inet地址是一个联合

union Inet_address{
char v4[4];
char v6[16];
};
Run Code Online (Sandbox Code Playgroud)

现在我想对extern"C"执行相同的操作Inet_address Inet_loopback Say,

extern "C" Inet_address Inet_loopback = 
{
 if(some condition)
  {127,0,0,1}  //It should be Inet_address.v4
 else
    { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 }  //This should be Inet_address.v6
};
Run Code Online (Sandbox Code Playgroud)

因为我在这里收到错误,请建议一个正确的方法来实现这一点.

c++ ipv6

1
推荐指数
1
解决办法
1123
查看次数

如何查找指向IPv6地址的SRV记录

我的C++应用程序必须查找指向IPv6地址的DNS SRV记录.从我目前研究的内容来看,res_search()系列函数是可行的方法.

有没有人有一个例子如何准备这样的查询以及如何提取IPv6结果?

c++ linux dns ipv6 srv

1
推荐指数
1
解决办法
1269
查看次数

PHP:如何检测IPv6是否在IPV6范围内?

我有一个ipv6范围,但我不知道如何检测$ _SERVER ['REMOTE_ADDRESS']是否在ipv6范围内?需要帮忙.谢谢

php ip ipv6

1
推荐指数
1
解决办法
2631
查看次数

VIES VAT api SOAP错误ipv6

这是我遇到的服务器设置/问题:

  • SOAP已安装并在服务器上运行
  • 使用PHP SOAP扩展(new SoapClient(self::VAT_VALIDATION_WSDL_URL))来进行调用
  • 我使用的WSDL URL是:http://ec.europa.eu/taxation_customs/vies/services/checkVatService?wsdl
  • 相同的代码适用于大多数其他机器,但不适用于当前的机器
  • SOAP响应是request_success => bool(false),因此请求不会成功
  • 例如,尝试使用telnet连接到URL会导致503内部服务器错误,并且会从其他计算机中502权限被拒绝.

php soap ipv6

1
推荐指数
1
解决办法
2173
查看次数

errno:38(函数未实现)调用更改sysctl值

我想用我的程序设置一些本地sysctl参数,我按照这里给出的指示:http://www.linux.it/~rubini/docs/sysctl/

举个例子,这就是我正在设置的值/proc/sys/net/ipv6/conf/tun0/accept_ra.我刚刚tun0在此调用之前配置了我的界面.(我验证我的界面已启动,我也可以分配IP地址)

int path_len = 5;
int tun0_accept_ra_path[] =  { CTL_NET,
                               NET_IPV6,
                               NET_IPV6_CONF,
                               ifr6.ifr6_ifindex, // This ifindex comes from an interface configured above
                               NET_IPV6_ACCEPT_RA };
int tun0_accept_ra_value = 0;
if (sysctl(tun0_accept_ra_path,
           path_len,
           NULL,
           0,
           &tun0_accept_ra_value,
           sizeof(tun0_accept_ra_value)) < 0) {
  printf("set sysctl 'accept_ra' failed. errno: %d\n", errno);
}
Run Code Online (Sandbox Code Playgroud)

我明白了: set sysctl 'accept_ra' failed. errno: 38 Function not implemented

有什么可能是错的想法吗?我正在以sudo身份运行,因此我认为我不应该拥有访问权限问题.

我正在使用覆盆子pi运行Debian GNU/Linux 7.0(wheezy).

c linux errno ipv6 sysctl

1
推荐指数
1
解决办法
6284
查看次数

Nginx代理传递 - 禁用ipv6

我有如下nginx conf:

server {
listen       127.0.0.1:8080;
server_name  127.0.0.1;

client_max_body_size 20m;

include /etc/nginx/conf.d/services/*.conf;

# redirect server error pages to the static page /50x.html                                                                                                                                              
#                                                                                                                                                                                                       
error_page   500 /500.json;
error_page   501 /501.json;
error_page   502 /502.json;
error_page   503 /503.json;
error_page   504 /504.json;
error_page   404 /404.json;

location = /500.json {
    root   /opt/lj/nginx;
}
location = /501.json {
    root   /opt/lj/nginx;
}
location = /502.json {
    root   /opt/lj/nginx;
}
location = /503.json {
    root   /opt/lj/nginx;
}
location = /504.json {
    root   /opt/lj/nginx;
}
location = /404.json { …
Run Code Online (Sandbox Code Playgroud)

reverse-proxy nginx ipv4 ipv6 proxypass

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

iperf UDP over IPv6

我正在使用iperf(https://iperf.fr/)通过IPv6 进行一些UDP带宽测试.使用具有以下命令行的Linux UDP客户端时,我的结果非常糟糕:

iperf -u -V -c fe80::5910:d4ff:fe31:5b10%usb0 -b 100m
Run Code Online (Sandbox Code Playgroud)

调查Wireshark的问题我发现在客户端发送数据时存在一些碎片.更准确地说,我看到UDP客户端传出的数据包大小为1510字节和92字节,交替.例如,我看到的UDP数据包具有以下模式(大小):1510,92,1510,92,1510,92,...,1510,92,...

阅读iperf2文档我读了以下选项(-l):

要读取或写入的缓冲区的长度.iPerf通过多次写入len个字节数组来工作.TCP的默认值为8 KB,UDP的默认值为1470字节.注意UDP,这是数据报大小,当使用IPv6寻址到1450或更低时需要降低以避免碎片.另请参见-n和-t选项.

我尝试通过使用以下内容替换Linux iperf UDP客户端命令行来执行相同的带宽测试:

iperf -u -V -c fe80::5910:d4ff:fe31:5b10%usb0 -b 100m -l1450
Run Code Online (Sandbox Code Playgroud)

我看到了很好的结果.看看Wireshark捕获,我看不到任何碎片了.

在IPv4上进行相同的测试我不需要更改默认的UDP数据报大小(我不需要使用'-l'选项)来获得良好的结果.

所以我的结论是碎片(通过IPv6)导致带宽性能不佳.

无论如何,我想知道在IPv6上将UDP数据报大小设置为1450时会发生什么.为什么我在IPv6上存在碎片,而不是在UDP上使用UDP数据报大小的默认值?此外,为什么在将UDP数据报大小减小到1450时没有碎片?

谢谢.

linux udp bandwidth ipv6 iperf

1
推荐指数
1
解决办法
4848
查看次数

如何在C中将IPv6字符串转换为unsigned char数组

我需要将IPv6字符串转换为C中的unsigned char数组,例如:IPv6字符串"fe80:0000:0000:0000:020f:bbff:feb8:f89e",unsigned char数组中的预期结果是:

exampleIPv6Addr[16] ={0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                   0x02, 0x0f, 0xbb, 0xff, 0xfe, 0xb8, 0xf8, 0x9e};
Run Code Online (Sandbox Code Playgroud)

是否有任何lib可以使用并实现这一点?

c ipv6

1
推荐指数
1
解决办法
871
查看次数

如何在Python中将IPv6链路本地地址转换为MAC地址

我正在寻找一种转换IPV6地址的方法,例如

fe80::1d81:b870:163c:5845 
Run Code Online (Sandbox Code Playgroud)

使用Python进入MAC-Adress.所以输出应该是

 1f:81:b8:3c:58:45
Run Code Online (Sandbox Code Playgroud)

就像在这个页面上一样:http://ben.akrin.com/ ?p = 4103如何将IPV6转换为MAC?

python mac-address type-conversion ipv6 python-2.7

1
推荐指数
1
解决办法
4211
查看次数

尝试将python套接字绑定到IPv6地址时参数无效

我正在尝试从我的虚拟机将python中的套接字绑定到其他虚拟机的地址,以便可以嗅探两者交换的帧。所以这是我的代码

    import socket

UDP_IP = "fe80:849b:21f4:624c:d70b"
UDP_PORT = 61627

sock = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
sock.bind((UDP_IP, UDP_PORT))

while True:
    data, addr = sock.recvfrom(1024)
    print(data)
Run Code Online (Sandbox Code Playgroud)

当我尝试执行python时,出现错误消息:

sock.bind((UDP_IP, UDP_PORT))
socket.error: [Error 22] Invalid argument
Run Code Online (Sandbox Code Playgroud)

我做错了,在此先感谢!

python sockets udp ipv6

1
推荐指数
1
解决办法
496
查看次数

标签 统计

ipv6 ×10

linux ×3

c ×2

c++ ×2

php ×2

python ×2

udp ×2

bandwidth ×1

dns ×1

errno ×1

ip ×1

iperf ×1

ipv4 ×1

mac-address ×1

nginx ×1

proxypass ×1

python-2.7 ×1

reverse-proxy ×1

soap ×1

sockets ×1

srv ×1

sysctl ×1

type-conversion ×1