可以说,IPv6的LVS-DR更加简单了,因为不必再担心Loopback接口的IPv6地址被解析造成地址冲突,省去了arp_ignore的配置。...IPv6规范 Loopback环回地址只有一个地址::1/128,而不是一个网段。 这是可以理解的。因为IPv6严格限定了scope。...现在留下一个问题, scope到底对Loopback接口上配置的地址,包括::1/128和其它所有添加到Loopback的地址有什么限制呢?...这意味着, 所有的Loopback接口上配置的地址,其整个前缀地址空间将全部不可达! 我们在Linux系统上看清楚这一切。...结论就是,当你添加一个IPv6地址到Loopback接口的时候,该地址前缀的网段路由将会以unreachable的形式添加进Main路由表。
sin_family表示地址的类型,IPv4的值就是AF_INET,IPv6的值就是AF_INET6,程序通过sin_family的类型就可以知道该套接字地址是哪种类型了。...通用套接字地址格式 image.png (图片来源:极客时间) IPv4 套接字格式地址 image.png (图片来源:极客时间) IPv6 套接字地址格式 image.png (图片来源:极客时间)...本地套接字地址格式 image.png (图片来源:极客时间) 几种套接字地址格式比较 image.png (图片来源:极客时间) 通用套接字地址 IPv4套接字格式地址表示IPv4的地址,IPv6...套接字格式地址表示IPv6的地址,还有本地地址结构用于本地 socket 通信,还有一个是通用地址结构,为什么要有通用地址结构呢?...但是ipv4地址结构的大小为16字节,ipv6地址结构的大小为28字节,本地地址地址结构的大小最多为110字节,而通用地址结构的大小为16字节。
(二)、套接字接口的种类 Linux 支持多种套接字种类,不同的套接字种类称为“地址族”,这是因为每种套接字种类拥有自己的通信寻址方法。Linux 所支持的套接字地址族见表12.3。...Linux 将上述套接字地址族抽象为统一的 BSD 套接字接口,应用程序关心的只是 BSD 套接字接口,而 BSD 套接字由各地址族专有的软件支持。...一般而言,BSD 套接字可支持多种套接字类型,不同的套接字类型提供的服务不同,Linux 所支持的部分 BSD 套接字类型见表12.4,但表12.3 中的套接字地址族并不一定全部支持表12.4 中的这些套接字类型...BSD 套接字上的详细操作与具体的底层地址族有关,底层地址族的不同实际意味着寻址方式、采用的协议等的不同。Linux 利用 BSD 套接字层抽象了不同的套接字接口。...所有随后的套接字(文件)操作都将定向到该套接字接口,而套接字接口则会进一步调用地址族的操作例程,从而将操作传递到底层地址族,如图12.10 所示。
最近发现家里宽带支持IPv6了,这里分享三个利用IPv6访问本地地址(内网地址)的方法。 通常来说,我们用localhost来代表本地地址127.0.0.1。...其实在IPv6中有他自己的表示方法ip6-localhost: 另外,大家应该都知道xip.io这个服务,可以将任何IP地址用域名的形式表示,用来测试SSRF漏洞比较方便。...但xip.io只支持IPv4,IPv6下也有个类似的服务,ip6.name。 比如,我们可以通过x.1.ip6.name访问::1,也就是本地: 再分享一个Windows下有趣的冷知识吧。...是不支持冒号的,所以我们没法在UNC Path中使用IPv6地址:\\[fe80::2]\share。...另外,SSRF测试中,即使目标没有连入IPv6网络,但本地系统、内网通常是支持IPv6的,所以不是说没有IPv6外网IP的目标就不能用IPv6的技巧进行测试。
//对于TCP套接字,此函数可用于指定用于输出连接的接口,这在多个网络接口的情况下非常有用。 //默认情况下,套接字使用DefaultForPlatform BindMode绑定。...相当于QHostAddress(127.0.0.1) QHostAddress::LocalHostIPv6 - IPv6本地主机地址。...绑定此地址的套接字只能在IPv4接口上侦听。 QHostAddress::AnyIPv6 - IPv6任何地址。相当于QHostAddress("::")。...绑定此地址的套接字只能在IPv6接口上侦听。 QHostAddress::Any - 任意地址。绑定此地址的套接字将同时监听IPv4和IPv6接口。...如果您正在使用已连接的套接字,请使用write()发送数据报。
IP 地址是所属局域子网中的广播地址,即位于该局域子网下的所有主机均能收到一份数据副本;多播:也称为组播,是将网络中属于同一业务类型的主机进行逻辑上的分组,信息收发仅发生在同一分组中,不在该分组的的主机无法收发对应的数据...dropMembership:在指定的接口上将指定的地址从不限源的多播组中移除(内部使用了套接字选项 IP_DROP_MEMBERSHIP),相关参数如下:multicastAddress:多播地址;multicastInterface...addSourceSpecificMembership:在指定的接口上加入一个特定于源的多播组(内部使用了套接字选项 IP_ADD_SOURCE_MEMBERSHIP),相关参数如下:sourceAddress...dropSourceSpecificMembership:在指定的接口上移除特定于源的多播组(内部使用了套接字选项 IP_DROP_SOURCE_MEMBERSHIP),相关参数如下:sourceAddress...setMulticastLoopback:设置套接字选项 IP_MULTICAST_LOOP 的值,用来控制数据是否可以回送到本地的回环接口(默认情况下,当本机发送多播数据到某个网络接口时,在 IP 层
这个”值——结果“参数用在套接字地址结构的相关函数中,往往会将一个套接字地址结构的指针和该结构的长度作为函数参数。...当这个函数是将该结构从用户空间传递到内核空间时,传递的长度是一个值,主要的目的是:由于有可能该结构是变长的,比如Unix,Datalink套接字地址结构就是变长的,告诉内核这个结构占用的最大的空间,如果对该结构进行写操作的话...,不要进行地址越界了。...而调用其他的函数对该套接字结构,进行从内核空间到用户空间的传递的话,这个长度参数是一个整型指针了,这个指针指向地址结构中的表示长度的成员。这个长度成员告诉了这个结构最终是用了多少空间。...注意:此时的长度是内核自己进行赋值的,而不是用户操作的。
该函数接受两个参数,第一个参数指定地址族(IPv4或IPv6),第二个参数指定套接字类型(流套接字或数据报套接字)。...# 创建一个IPv4的流套接字sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)绑定套接字如果要在服务器端使用套接字,则需要将套接字绑定到一个地址和端口上...使用socket.bind()函数可以将套接字绑定到一个地址和端口上。...# 将套接字绑定到本地地址和端口上sock.bind(('localhost', 8888))监听套接字如果要在服务器端接受连接请求,则需要将套接字设置为监听状态。...接受请求使用socket.accept()函数可以接受客户端的连接请求,该函数返回一个连接对象和客户端的地址。
与 IPv6 节点通信 : 本机需要 使用 相同地址数据结构, 和 相同套接字; 地址内部机制 : Java 中只有一种 IPv4 地址, 任何输入的 IPv6 形式 或者 IPv4 地址映射的地址...Socket 类的全名称 : public class Socket extends Object -- 作用 : 客户端的套接字; 套接字工作原理 : 套接字的实际工作由 SocketImpl...类实例执行, 可以更改 SocketImplFactory 进行配置, 创建适合本地防火墙的套接字; 可进行的操作 : 绑定本地地址, 链接服务器, 获取输入输出流, 设置选项, 获取套接字的状态;...: 该抽象类是实现套接字的所有类的通用超类, 创建客户端 和 服务器套接字都可以使用该超类; 3...., 根据客户端的各种请求做某些操作; 原理 : 服务器套接字的实际操作由 SocketImpl 对象执行; 创建适合本地防火墙的套接字 : 在应用程序中, 更改 创建 SocketImpl 的 SocketImplFactory
1.套接字地址结构 1).IPv4套接字地址结构 IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在 struct in_addr{ in_addr_t...不同的协议有不同的套接字地址结构,函数的参数怎么声明这些套接字地址结构的指针类型是一个问题,于是就定义了一个通用套接字地址结构,所有需要套接字地址结构做参数的函数的这个形参都被声明为指向这个通用套接字地址结构的指针的类型...,这些通用套接字结构的唯一用途就是对指向特定于协议的套接字地址结构的指针执行类型强制转换 3).IPv6套接字地址结构 IPv6套接字地址结构在 struct in6_addr{ uint8_...地址 uint32_t sin6_scope_id; }; 说明: 如果当前系统支持套接字地址结构中的长度字段,则SIN6_LEN常值必须定义 IPv6的地址族是AF_INET6...3.字节排序函数 大端字节序:高字节在低地址 小端字节序:低字节在低地址 网络字节序:网络字节序采用大端字节序 主机字节序:本地主机使用的字节序,可能为大端或小端 因为套接字地址结构中的某些字段必须按照网络字节序进行维护
需要注意的是,inet_pton/inet_ntop对IPV4和IPV6地址都适用。...sockaddr_in sockaddr_in是IPV4套接字地址结构,它在不同系统中具体定义可能有所不同: struct sockaddr_in{ sa_family_t sin_family...bind--指定套接字地址信息 调用socket函数之后已经确定了协议族和传输协议,但是还没有确定本地协议,即套接字地址信息。...addr是套接字地址,它并不是我们前面所看到的sockaddr_in类型,而是struct sockaddr,因为struct sockaddr是通用类型,不仅适用于IPV4套接字地址,也需要适用于IPV6...套接字地址。
SOCK_RAW IPv4 IPv6 socket函数返回一个套接口描述字,简称套接字(sockfd)。...获取套接字无需指定地址,只需要指定协议族和套接口类型(如上表中的组合)。 connect函数 TCP客户用connect函数来建立一个与TCP服务器的连接。...bind函数 函数bind为套接口分配一个本地协议地址,包括IP地址和端口号。...然后通过RPC端口映射器进行注册,客户端与该服务器连接之前,先通过端口映射器获取服务器的端口。 进程可以把一个特定的IP地址捆绑到它的套接口上。...如果服务器不把IP地址绑定到套接口上,那么内核把客户端发送SYN所在分组的目的IP地址作为服务器的源IP地址。
ss命令是用于在Linux系统上显示与网络套接字相关的信息的工具。 该工具显示netstat命令的更多详细信息,该命令用于显示活动的套接字连接。...$ ss -lu 8.显示套接字的PID(进程ID) 要显示与套接字连接有关的进程ID,请使用-p标志,如图所示。...$ ss -s 10.显示IPv4和IPv6套接字连接 如果您对IPv4套接字连接感到好奇,请使用-4选项。...$ ss -4 要显示IPv6连接,请使用-6选项。 $ ss -6 11.按端口号过滤连接 ss命令还允许您过滤套接字端口号或地址号。...例如,要显示具有ssh的目标端口或源端口的所有套接字连接,请运行命令。
_ADD_MEMBERSHIP 在一个指定的本地接口上加入一个多播组。...我们用IPv4中的单播地址或IPv6中的接口索引去指定本地接口。当加入或离开一个组时,要用到下面两个结构。...IP_MULTICAST_IF 和 IPV6_MULTICAST_IF 给从本套接口上发送的外出多播数据报指定接口。这个接口在IPv4中被指定为in_addr结构,在IPv6中被指定为接口索引。...地址在由addr指向的套接口地址结构中,它的长度由salen指定。...地址在由addr指向的套接口地址结构中。
或本地socket格式。...对于使用者,每次需将IPv4、IPv6或本地socket格式转化为通用socket格式,就像下面的IPv4 socket地址格式: struct sockaddr_in name; bind (sock...一般来说,服务器端的程序一定要绑定到一个众所周知的端口上。服务器端的IP地址和端口数据,相当于打电话拨号时需要知道的对方号码,如果没有电话号码,就没有办法和对方建立连接。...连接套接字,通过前面讲述的socket函数创建 servaddr、addrlen 指向套接字地址结构的指针和该结构的大小。...套接字地址结构必须含有服务器的IP地址和端口号。 客户在调用函数connect前不必非得调用bind函数,如果需要,内核会确定源IP地址,并选择一个临时端口作为源端口。
(不能直接绑定套接字,必须先gethostbyname)转成IP才能绑定——括号里的字我也不太明白。也就是说你的localhost默认的ip就是127.0.0.1。...现在我们就可以这样理解了,地址写127.0.0.1的意思就是要在本地进行访问: ? ? 我们把地址直接写成localhost,这样也是可以调通的。...在操作系统支持 ipv6 后,它同时还指向ipv6 的地址 [::1] 在 Windows 中,这个域名是预定义的,从 hosts 文件(c:\windows\system32\drivers\etc\...不能直接绑定套接字,必须先gethostbyname转成IP才能绑定。 127.0.0.1 是绑定在 loopback 接口上的地址,如果服务端套接字绑定在它上面,你的客户端程序就只能在本机访问。...如果主机中存在多个网卡,分别连接不同的物理网络,比如 192.168.0.1/255.255.255.0 和 192.168.1.1/255.255.255.0,那么当你的服务端套接字绑到 192.168.0.1
IPv4套接字地址结构: 通常也被成为“网际套接字地址结构”,以sockaddr_in命名,定义在头文件中。 ...以上是IPv4套接字地址结构,然而套接字函数是通用的,并且总是接收一个套接字地址结构的指针(eg, sockaddr_in serv; bind(sockfd, (sockaddr *) &serv,...通用套接字地址结构用途就是对指向特定于协议的套接字地址结构的指针执行类型强制转换。...IPv6套接字地址结构在头文件中定义: struct in6_addr { uint8_t s6_addr[16]; }; #define SIN6_LEN...值-结果参数返回的结果:如果套接字地址结构是固定长度(如IPv4 (16) 和IPv6 (28) ),则返回值总是固定长度;对于可变长度(unix域等),返回值可能小于该结构的最大长度。
以上是IPv4套接字地址结构,然而套接字函数是通用的,并且总是接收一个套接字地址结构的指针(eg, sockaddr_in serv; bind(sockfd, (sockaddr *) &serv,...IPv6套接字地址结构在头文件中定义: struct in6_addr { uint8_t s6_addr[16]; }; #define SIN6_LEN...* IPv6 scope-id */ }; IPV6的地址族是AF_INET6,而IPv4的地址族是AF_INET。...第二个参数:一个指向套接字地址结构的指针 第三个参数:该结构体的大小 套接字的地址结构必须含有服务器IP地址和端口号 2.3.3 bind函数 bind函数把一个本地协议地址赋予一个套接字。...用于返回由内核赋予的本地端口号 (3) getsockname用于获取某个套接字的地址族 (4) 以通配IP地址调用bind的服务器上,与客户一旦建立连接,getsockname可用于返回由内核赋予该连接的本地
; ip地址的作用:用来在电脑中 标识唯一一台电脑,比如192.168.1.1;在本地局域网是唯一的。...ifconfig ensxx down/up ip和ip地址的分类 ip分为ipv4和ipv6 ip地址分为: A类地址 B类地址 C类地址 D类地址--用于多播 E类地址--保留地址,因ipv6诞生...() if __name__ == "__main__": main() udp接发数据总结 发送数据的流程: 创建套接字 发送数据 关闭套接字 接收数据的流程: 创建套接字 绑定本地自己的信息...: 两个人都能发消息,能同时发,比如打电话; udp使用同一套接字收且发数据 """socket套接字是全双工""" import socket def main(): udp_socket...绑定本地信息 让默认的套接字由主动变为被动 等待客户端的链接,堵塞 被客户端链接后,创建一个新的客服套接字为客户端服务; 接收客户端发送的消息,堵塞 接收客户端发送的消息后,给客户端回消息 关闭客服套接字
(none): 默认情况下,netstat显示打开的套接字列表,如果未指定任何地址族,则将打印所有已配置地址族的活动套接字。...Local Address: 套接字本地端的地址和端口号,除非指定了--numeric, -n选项,否则套接字地址将解析为其规范的主机名FQDN,并且端口号将转换为相应的服务名。...Foreign Address: 套接字远端的地址和端口号,类似于本地地址。...CONNECTED: 套接字已连接。 DISCONNECTING: 套接字正在断开连接。 (empty): 该套接字未连接到另一套接字。...Active NET/ROM sockets: 活动NET/ROM套接字的列表。 Active AX.25 sockets: 活动AX.25套接字的列表。
领取专属 10元无门槛券
手把手带您无忧上云