ipv6转ipv4免费上网,ipv6地址在线转换成ipv4

0 415
本文目录: 1、ipv6到ipv4代理搭建方法 2、ipv6为什么免费上网不收费用? 3、ipv4与ipv6如何转换 4、ipv6 换回ipv4...

本文目录:

ipv6到ipv4代理搭建方法

NAT64/DNS64安装手册

NAT64采用tayga实现,DNS64采用bind9.8实现。

1 平台搭建

平台为ubuntu12.04 Desktop版本。正常安装即可。

2 NAT64 (tayga)

2.1 安装

在终端模式下输入

sudoapt-get install tayga

2.2 配置

2.2.1 相关设置

Sudo gedit /etc/tayga.conf

按照说明配置,目前实现方案不需要修改。

2.2.2 创建、启动设备

tayga–mktun

iplink set nat64 up

2.2.3 地址、路由配置

ip addr add192.168.0.1dev nat64(修改为本机IPv4地址)

ip addr add2001:db8:1::1dev nat64 (修改为本机IPv6地址)

ip route add 192.168.255.0/24 dev nat64(不需要修改)

ip route add 2001:db8:1:ffff::/96 dev nat64(不需要修改)

2.2.4 启动IPv4、IPv6转发

sysctl -w net.ipv4.conf.all.forwarding=1

sysctl -w net.ipv6.conf.all.forwarding=1

2.2.5 启动tayga

tayga

可使用tayga –d进入debug模式。

ping6 2001:db8:1:ffff::192.168.0.1((修改为本机IPv4地址))

2.2.6 NAT44 设置

iptables -t nat -A POSTROUTING -s192.168.255.0/24 -j SNAT --to-source192.168.0.1(修改为本机IPv4地址)

iptables-A FORWARD -s 192.168.255.0/24 -i nat64 -j ACCEPT

3 DNS64 bind9

3.1 安装

sudo apt-get install bind9

3.2 配置

sudo gedit /etc/bind/named.conf.options

修改为如下:

options {

directory "/var/cache/bind";

// If there is a firewall between you and nameservers you want

// to talk to, you may need to fix the firewall to allow multiple

// ports to talk.See

// If your ISP provided one or more IP addresses for stable

// nameservers, you probably want to use them as forwarders.

// Uncomment the following block, and insert the addressesreplacing

// the all-0's placeholder.

listen-on-v6 { any; };

allow-query { any; };

dns64 2001:db8:1:ffff::/96 {

clients { any; };

};

forwarders {

159.226.8.7;

};

//=================================================================

// If BIND logs error messages about the root key being expired,

// you will need to update your keys.See

//================================================================

dnssec-validation auto;

auth-nxdomain no;#conform to RFC1035

listen-on-v6 { any; };

};

修改完成后,输入named.conf查看修改是否成功。

3.3 启动bind9

Bind9默认安装后开机启动。设置完成后,输入

/etc/init.d/bindrestart

4 使用

4.1 Windows

用管理员权限进入cmd,输入

netsh

interfaceipv6

add route 2001:db8:1:ffff::/96 "本地连接"2001:db8:1::1(修改为机器的ipv6地址)(为服务器的ipv6地址)

然后设置DNS服务器为NAT64地址即可

4.2 Linux

添加路由

ip route add 2001:db8:1:ffff::/96 via2001:db8:1::1(修改为机器的ipv6地址)

然后设置DNS服务器为NAT64地址即可(为服务器的ipv6地址)

服务器地址:192.168.130.42

2400:dd01:1001:130:250:c2ff:fe23:f051/64

�0:H�+

ipv6为什么免费上网不收费用?

因为现在ipv6还在试验建设过程中,很多传统internet网站还是建设在IPV4网络下,也就是说,我们现在建设的ipv6其实还只是一个超级大的局域网,想通过IPV6访问internet其实是需要融合网关转换的。现在来说,ipv6网络还主要是用于高等学校见教育网通信,所以这是不收费的,至于学校里面的ipv6转ipv4还在试验中,很多也是不收费的。

ipv4与ipv6如何转换

IPv4:是互联网协议的第四版,同时也是第一个被广泛使用,构成现今互联网技术的基石的协议;

IPv6:是互联网工程任务组设计的用于替代现行版本IPv4的下一代IP协议;目前IP协议的版本号是IPv4,它的下一个版本就是IPv6。

ipv4与ipv6地址如何转换的python解决办法

源码如下:(需要用到twisted.python.compat及struct和python socket方法)

import struct,socket

#import twisted.python.compat  #导入twisted.python.compat 更方便

# ipv4数字地址

def ipv4_to_string(ipv4):

ipv4_n = socket.htonl(ipv4)

data = struct.pack('I', ipv4_n)

ipv4_string = socket.inet_ntop(socket.AF_INET, data)

return ipv4_string

def ipv4_from_string(ipv4_string):

data = socket.inet_pton(socket.AF_INET, ipv4_string)

ipv4_n = struct.unpack('I', data)

ipv4 = socket.ntohl(ipv4_n[0])

return ipv4

def ipv4_readable2int(ipv4):

return int(ipv4)

def ipv4_int2readable(ipv4):

return str(ipv4)

# ipv6用四个整数(tuple或用,分开的字符串)表示

def ipv6_to_string(ipv6):

ipv6_n = (socket.htonl(ipv6[0]),

socket.htonl(ipv6[1]),

socket.htonl(ipv6[2]),

socket.htonl(ipv6[3]))

data = struct.pack('IIII', ipv6_n[0], ipv6_n[1], ipv6_n[2], ipv6_n[3])

ipv6_string = socket.inet_ntop(socket.AF_INET6, data)

return ipv6_string

def ipv6_from_string(ipv6_string):

data = socket.inet_pton(socket.AF_INET6, ipv6_string)

ipv6_n = struct.unpack('IIII', data)

ipv6 = (socket.ntohl(ipv6_n[0]),

socket.ntohl(ipv6_n[1]),

socket.ntohl(ipv6_n[2]),

socket.ntohl(ipv6_n[3]))

return ipv6

def ipv6_tuple2readable(ipv6):

return str(ipv6[0]) + ',' + str(ipv6[1]) + ',' + str(ipv6[2]) + ',' + str(ipv6[3])

def ipv6_readable2tuple(ipv6):

return tuple(ipv6.split(','))

#win32 下实现 inet_pton 和 inet_nto

def inet_ntop(family, ipstr):

if family== socket.AF_INET:

return socket.inet_ntoa(ipstr)

elif family== socket.AF_INET6:

v6addr = ':'.join(('%02X%02X' % (ord(i), ord(j)))

for i,j in zip(ipstr[::2], ipstr[1::2]))

return v6addr

#

def inet_pton(family, addr):

if family== socket.AF_INET:

return socket.inet_aton(addr)

elif family== socket.AF_INET6:

if '.' in addr: # a v4 addr

v4addr = addr[addr.rindex(':')+1:]

v4addr = socket.inet_aton(v4addr)

v4addr = map(lambda x: ('%02X' % ord(x)), v4addr)

v4addr.insert(2, ':')

newaddr = addr[:addr.rindex(':')+1] + ''.join(v4addr)

return inet_pton(family, newaddr)

dbyts = [0]* 8 # 8 groups

grps = addr.split(':')

for i,v in enumerate(grps):

if v:

dbyts[i] = int(v, 16)

else:

for j, w in enumerate(grps[::-1]):

if w:

dbyts[7-j] = int(w, 16)

else:

break

break

return ''.join( (chr(i//256) + chr(i%256)) for i in dbyts)

else:

raise RuntimeError("What family?")

IPv4的地址如何转换为IPv6的地址

IPv4地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),通常我们以10进制表示。例如192.168.1.1就是一个10进制的IPv4地址,如果用2进制表示,则为11000000 10101000 00000001 00000001这里设计的2进制与10进制的计算方法比较简单,这里就不再阐述。

那么由IPv4的地址转换为IPv6的地址怎么转换呢?这里有2种表示方法:

第一种

比较简单的。例如还是IPv4的192.168.1.1 转换成IPv6的地址,则为::192.168.1.1 。就是在IPv4的地址前添加::即可,不需要经过计算。

第二种

标准的IPv6地址,需要经过计算。首先,需要将IPv4的地址转换成2进制的,然后再由2进制的数,每4位为一组,转换成16进制的,最后再转换为IPv6地址。举例说明,192.168.1.1,10进制表示为192.168.1.1,2进制表示为11000000 10101000 00000001 00000001,16进制表示为C0 A8 01 01,IPv6地址为0:0:0:0:0:0:C0A8:0101。下表会更加清晰。

ipv6 换回ipv4

你可以像原来那样

在命令行窗口中,运行下列命令:

ipv6 uninstall

进行ipv6的卸载

不过,我是ipv6、ipv4都用,同时用,没什么影响,可能是你的系统没有配置好,你应该重新启动计算机,然后再看

【ipv6转ipv4免费上网】内容来源于网络,若引用不当、侵权,请联系我们修正或者删除!

最后修改时间:
文章相关标签:
小小茶猫
上一篇 2023年02月03日 00:10
下一篇 2023年02月03日 00:30

评论已关闭