我已经有相当多的PHP代码,我想知道我应该在什么时候开始升级脚本以支持IPV6.
我知道IPV6长期以来一直处于"要做的事情列表"中,但是当我需要开始支持时,它确实从未见过明确的过渡路径.
问题是使用httplib的urllib正在查询AAAA记录.
我想避免这种情况.有一个很好的方法吗?
>>> import socket
>>> socket.gethostbyname('www.python.org')
'82.94.164.162'
21:52:37.302028 IP 192.168.0.9.44992 > 192.168.0.1.53: 27463+ A? www.python.org. (32)
21:52:37.312031 IP 192.168.0.1.53 > 192.168.0.9.44992: 27463 1/0/0 A 82.94.164.162 (48)
python /usr/lib/python2.6/urllib.py -t http://www.python.org >/dev/null 2>&1
21:53:44.118314 IP 192.168.0.9.40669 > 192.168.0.1.53: 32354+ A? www.python.org. (32)
21:53:44.118647 IP 192.168.0.9.40669 > 192.168.0.1.53: 50414+ AAAA? www.python.org. (32)
21:53:44.122547 IP 192.168.0.1.53 > 192.168.0.9.40669: 32354 1/0/0 A 82.94.164.162 (48)
21:53:44.135215 IP 192.168.0.1.53 > 192.168.0.9.40669: 50414 1/0/0 AAAA[|domain]
Run Code Online (Sandbox Code Playgroud) 这是一个基本的疑问,但我想知道,如果在同一台两台机器之间建立两个TCP连接,那么两个连接中的数据包将遵循相同的路径(相同的链路和节点).我之所以这样问是因为我想测量IPv4和Ipv6 TCP连接的两台机器之间的带宽,我想确保这两个连接遵循相同的路径.
如果我想要一个禁令IP用户在我的网站上,有没有可能通过既要做到这一点IPv4,并IPv6?有些浏览器默认使用IPv4地址,而有些浏览器有可能使用IPv6地址.因此,如果我通过他们当前的IP禁止某人,他们只需要使用另一个导航器来绕过禁令.
tl; dr:是否可以将IPv4地址翻译成IPv6类似的东西来"统一"它们?
我正在使用PHP作为服务器端技术.
我正在尝试从具有ip ipv6以及ipv4地址的ubuntu系统安装一个文件夹
root@:/home# ifconfig
br0 Link encap:Ethernet HWaddr 16:37:81:2e:ce:e9
inet addr:10.0.3.24 Bcast:10.0.7.255 Mask:255.255.248.0
inet6 addr: 2001:db8::60fe:5bff:febc:912/64 Scope:Global
inet6 addr: 2001:db8::e8a6:7d68:16b8:3d86/64 Scope:Global
Run Code Online (Sandbox Code Playgroud)
我能够从不同的linux系统ping ipv6地址:
[root@Abhitesh home]# ping6 2001:db8::60fe:5bff:febc:912
PING 2001:db8::60fe:5bff:febc:912(2001:db8::60fe:5bff:febc:912) 56 data bytes
64 bytes from 2001:db8::60fe:5bff:febc:912: icmp_seq=1 ttl=64 time=0.968 ms
64 bytes from 2001:db8::60fe:5bff:febc:912: icmp_seq=2 ttl=64 time=1.07 ms
Run Code Online (Sandbox Code Playgroud)
当我试图安装时,我收到错误 ipv6
[root@Abhitesh home]# mount -t nfs 2001:db8::60fe:5bff:febc:912:/home/abhitesh /home/mount/
mount.nfs: mount system call failed
[root@Abhitesh home]#
Run Code Online (Sandbox Code Playgroud)
使用ipv4mount命令正在运行.
这是我的命令是错误的还是我需要配置一些东西,以挂载ipv6.
在我的系统ipv6中启用.
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
0
Run Code Online (Sandbox Code Playgroud) 我似乎无法找出为什么这个正则表达式不起作用PL/SQL.
if ( REGEXP_LIKE(v,'/^(?>(?>([a-f0-9]{1,4})(?>:(?1)){7}|(?!(?:.*[a-f0-9](?>:|$)){8,})((?1)(?>:(?1)){0,6})?::(?2)?)|(?>(?>(?1)(?>:(?1)){5}:|(?!(?:.*[a-f0-9]:){6,})(?3)?::(?>((?1)(?>:(?1)){0,4}):)?)?(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?>\.(?4)){3}))$/iD') ) then
Run Code Online (Sandbox Code Playgroud)
这是用于验证IPv4和IPv6,它来自这里:https://stackoverflow.com/a/1934546/3112803
不确定这是否与它有关但我也问过这个问题关于最后的D标志:这个正则表达式(RegEx)标志意味着什么/ iD
出于某种原因,这个正则表达式适用于我在本网站上的大部分测试:http://regex101.com/但在PL/SQL一切都无效.
我的意思最的是,有一些情况下,我觉得很失败,但我一直在寻找了几天,这是最好的一个我能找到的是在512个字符(512是限制使用时REGEXP_LIKE的PL/SQL)
我很感激任何帮助.谢谢!
这些是我正在使用的测试用例......
{1: Initial address, regex should say valid/match}
select isValid('2001:0db8:0000:0000:0000:ff00:0042:8329','ipv6') from dual;
{2: After removing all leading zeroes, regex should say valid/match}
select isValid('2001:db8:0:0:0:ff00:42:8329','ipv6') from dual;
{3: After omitting consecutive sections of zeroes, regex should say valid/match}
select isValid('2001:db8::ff00:42:8329','ipv6') from dual;
{4: The loopback address, regex …Run Code Online (Sandbox Code Playgroud) 我正在配置服务器为双栈,允许ipv4和ipv6.然后,我想创建一个php页面来显示客户端机器是通过ipv4,ipv6还是两者进行连接.
我也尝试了$ _SERVER ['REMOTE_ADDR']和getenvbyhost("REMOTE_ADDR"),但它只返回一个或另一个,而不是两者.
我也试过下面的代码
function isIPv6($ip) {
if(filter_var($ip, FILTER_VALIDATE_IP)) {
if(filter_var($ip, FILTER_FLAG_IPV6)) {
//It is IPv6 indeed.
} else {
//It is IPv4
}
} else {
// Not a valid IP
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以从服务器获取两个ips?
我想将IPv6的短格式转换为扩展格式.假设我有ipv6 ip为fe80 :: 1到fe80:0000:0000:0000:0000:0000:0000:0001和fe80:0010 :: 1为fe80:0010:0000:0000:0000:0000:0000: 0001等.你能帮忙用TCL或Perl或Python语言编写脚本吗?
代码应该是动态的,无论我给扩展的格式应该是扩展格式.
我上周提交了我的iPhone应用程序,由于IPv6支持问题,app拒绝以下消息,
"Apps are reviewed on an IPv6 network. Please ensure that your app supports IPv6 networks, as IPv6 compatibility is required."
Run Code Online (Sandbox Code Playgroud)
所以现在我们准备配置IPv6了.但在我的应用程序中,我们正在与AWS服务器进行交互.因为Apple Forums表示IPv6不支持AWS交互.现在如何解决这种情况以及如何实现这一目标.
请建议.提前致谢.
我打算在Apple Store上发布应用程序,然后我才知道IPV6拒绝问题。我的应用仅支持IPV4,在此链接上我发现该应用应支持IPV6。
所以我的问题是,应用程序必须同时支持IPV4和IPV6吗?
抱歉,如果您将其视为一个愚蠢的问题,但在被Apple拒绝之前,我正在寻找Apple链接和更多详细信息。