地址

socket inet_pton

心已入冬 提交于 2020-01-23 18:29:27
inet_pton   Linux下这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换   而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。   inet_pton函数原型如下[将“点分十进制” -> “整数”]   #include <sys/types.h>   #include <sys/socket.h>   #include <arpa/inet.h>   int inet_pton(int af, const char *src, void *dst);   这个函数转换字符串到网络地址,第一个参数af是地址族,转换后存在dst中   inet_pton 是inet_addr的扩展,支持的多地址族有下列:   af = AF_INET   src为指向字符型的地址,即ASCII的地址的首地址(ddd.ddd.ddd.ddd格式的),函数将该地址   转换为in_addr的结构体,并复制在*dst中   af =AF_INET6   src为指向IPV6的地址,,函数将该地址   转换为in6_addr的结构体,并复制在*dst中   如果函数出错将返回一个负值,并将errno设置为EAFNOSUPPORT,如果参数af指定的地址族和src格式不对,函数将返回0。   inet

IP 地址与MAC硬件地址

喜夏-厌秋 提交于 2020-01-23 16:24:41
IP 地址与MAC硬件地址 我们都知道数据通信要使用IP地址加MAC地址,两个地址缺一不可,下为原理图: 1.下面介绍计算机A与计算机B通信的过程 交换机基于数据帧的MAC地址转发数据帧,路由器基于数据包的IP地址转发数据包; 数据包在传输过程不变,经过网络设备数据帧要用新的物理层(MAC)地址重新包装; MAC地址决定了数据帧在网络设备中转过程中下一站由哪个设备接收,而IP地址决定了数据包的起0点和终点。 例如图中的使用M表示MAC地址,由于计算机A所处的10.0.0.2网段与计算机B所处的12.0.0.2网段不同,所以A与B不能直接通信,需要借助路由器中转。 首先,计算机发出数据帧1,里面标明了源IP地址与目标IP地址、 源MAC地址与目标MAC地址,这样数据帧1就可以通过交换机准确传输到目标MAC地址M2,即路由器Router1处; 路由器通过查找路由表确定到12.0.0.2的网段的路径,并把该数据帧发现通向该路径的M3接口处,M3接口再对数据帧1进行封装改变源MAC地址和目标MAC地址,IP地址不变并发出数据帧2; 以此类推,最终数据帧传输到12.网段的路由器上,该路由器再通过同网段的交换机把数据帧3发送到计算机B处,完成通信。 注意 我们把数据传输过程中数据帧中不变的部分:即数据+IP地址(目标地址与源地址)称为 数据包 ; 数据包加上MAC地址(目标地址与源地址

IP 地址

本秂侑毒 提交于 2020-01-23 15:58:15
IP 地址 IP 地址及其表示方法 我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。 IP 地址现在由 因特网名字与号码指派公司 ICANN (Internet Corporation for Assigned Names and Numbers)进行分配 。 IP 层次结构 由于当初美国国防部一开始设计TCP/IP协议的时候,没想过把全球的计算机连接起来,所以当时设计的IP 地址只有32位,发展到如今已显得不够用了。IP地址其实就是一串数字,是一个可以直接访问公网的地址,现在已成为一种资源。所以说开发个人网站要买公网IP地址。这里讲解的是 IPv4 版本的内容,如今慢慢地往 IPv6 版本转变。 IP地址分为网络部分( 网络ID )和主机部分( 主机ID ),每一个网段属于以固定的网络地址,如图中的三个网段的 网络ID 分别为 192.168.1.0 、 192.168.2.0 、 192.168.3.0 。这样计算机只关心数据发到哪个网段的网络地址上,而不再关心具体发到某一台计算机的 主机ID 。就好像电话号码分区号是一样的,前面几位号码管地区,后面号码管该地区的特定用户。 所以同一个网段的计算机 网络ID 都一样,不同的是跟在网络ID后面的各计算机的 主机ID . IP

GO语言-指针

霸气de小男生 提交于 2020-01-23 13:13:59
一、Go语言中的指针 任何程序数据载入内存后,在内存都有他们的地址,这就是指针。而为了保存一个数据在内存中的地址,我们就需要指针变量。 比如,“永远不要高估自己”这句话是我的座右铭,我想把它写入程序中,程序一启动这句话是要加载到内存(假设内存地址0x123456),我在程序中把这段话赋值给变量 A ,把内存地址赋值给变量 B 。这时候变量 B 就是一个指针变量。通过变量 A 和变量 B 都能找到我的座右铭。 Go语言中的指针不能进行偏移和运算,因此Go语言中的指针操作非常简单,我们只需要记住两个符号: & (取地址)和 * (根据地址取值)。 1.1 指针地址和指针类型 每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置。Go语言中使用 & 字符放在变量前面对变量进行“取地址”操作。 Go语言中的值类型(int、float、bool、string、array、struct)都有对应的指针类型,如: *int 、 *int64 、 *string 等。 取变量指针的语法如下: ptr := &v // v的类型为T 其中: v:代表被取地址的变量,类型为 T ptr:用于接收地址的变量,ptr的类型就为 *T ,称做T的指针类型。*代表指针。 举个例子: func main() { a := 10 b := &a fmt.Printf("a:%d ptr:%p\n", a

程序员必备开发工具,提高开发效率的神兵利器,大多都是免费的哦

落花浮王杯 提交于 2020-01-23 13:03:57
1、IntelliJ IDEA 这个就不用多说了,地球人都在用,很好的开发工具,并且插件齐全,更牛逼的是支持各种语言开发。 官网地址: http://www.jetbrains.com/idea/ 注册码地址: http://idea.lanyus.com/ 2、DataGrip数据库客户端管理 Navicat 其实是更好的一个数据库客户端管理工具,但是收费,很麻烦,就又找了一个,也是比较好用的,DataGrip也是 IntelliJ IDEA 中的一个工具。 官网地址: https://www.jetbrains.com/datagrip/ 注册码地址: http://idea.lanyus.com/ 3、Postman接口测试 这个是在开发中,经常测试RestfulApi接口使用的,并非专业接口测试用具,开发阶段使用是一个特别好的工具,可以设置各种请求方式,并且大多已经提供下拉框了,不用手打了,必须推荐。 官网地址: https://www.getpostman.com/postman 4、有道云笔记 云笔记各种产品很多,我比较钟爱有道云笔记,支持分类,加密,markdown,手机版等好多功能,并且初始内存也是比较大的,3G的,写笔记够写一辈子了。 官网地址: http://note.youdao.com/noteintro.html 5、Microsoft VS Code

计算机名(主机名)、本机地址(IP/IPv4)、localhost、127.0.0.1的关系

十年热恋 提交于 2020-01-23 08:02:40
一、查看我的主机名和ip地址的俩种方式: 1、(简便)打开cmd,输入ipconfig/all 2、右击此电脑-属性-查看计算机名 控制面板-网络和Internet-网络和共享中心-点击WLAN部分-详细信息-查看IPv4地址 二、本机地址,即“本机物理网卡所绑定的网络协议地址”,由于目前常用网络协议只剩下了IPV4,IPX/Apple Tak消失了,IPV6还没普及,所以通常仅指IP地址甚至IPv4地址。 也是“绑定在物理或虚拟网络接口上的IP地址”,可供其他设备访问到。 还可以叫局域网IP或内网IP,而按下图方式查到的是外网IP。 三、 localhost,是一个域名,在过去它指向 127.0.0.1 这个IP地址。在操作系统支持 ipv6 后,它同时还指向ipv6 的地址 [::1]。 Windows 中,这个域名是在hosts 文件中预定义的。 四、127.0.0.1, 这个地址通常分配给 loopback 接口。 loopback 是一个特殊的网络接口(可理解成虚拟网卡),整个127.* 网段通常被用作 loopback 网络接口的默认地址。 这个地址在其他计算机上不能访问,就算你想访问,访问的也是自己,因为每台带有TCP/IP协议栈的设备基本上都有 localhost/127.0.0.1。 来源: CSDN 作者: yanglu150826 链接: https:/

实模式与保护模式

 ̄綄美尐妖づ 提交于 2020-01-23 02:29:54
1. 实模式,又叫实地址模式, CPU 完全按照 8086 的实际寻址方法访问从 00000h--FFFFFh ( 1MB 大小)的地址范围的内存,在这种模式下, CPU 只能做单任务运行;寻址公式为:物理地址 = 左移 4 位的段地址 + 偏移地址,即:物理地址是由 16 位的段地址和 16 位的段内偏移地址组成的。 2. 保护模式,又叫内存保护模式,寻址采用 32 位段和偏移量,最大寻址空间 4GB ,在这种模式下,系统运行于多任务,设计这种模式的原因和好处是:保护模式增加了寻址空间,增加了对多任务的支持,增加了段页式寻址机制的内存管理(分段机制使得段具有访问权限和特权级,各应用程序和操作系统的代码和核心是被保护的,这也是多任务支持的实现关键和保护这个名字的由来)。寻址过程为:物理地址 = 由段地址查询全局描述符表中给出的段基址 + 偏移地址,即:物理地址由影像寄存器中的基址加上 16 位或者 32 位的偏移组成。 ============================================== 1: 实模式 是 CPU 启动的时候的模式 这时候就相当于一个速度超快的 8086 不能使用多线程 不能实现权限分级 还不能访问 20 位以上地址线 , 也就是说只能访问 1M 内存 (!!!) 2: 保护模式 操作系统接管 CPU 后 . 会使 CPU 进入保护模式 .

ARP协议

故事扮演 提交于 2020-01-23 00:57:50
前言 网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由 网络层 来提供,但是仅有IP地址是不够的,IP数据报文必须 封装成帧 才能通过数据链路进行发送。数据帧必须要包含 目的MAC地址 ,因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由 ARP(Address Resolution Protocol)协议 来实现的。 ARP数据包格式 这里需要强调的是 hardware type一般是指以太网 注意:ARP报文不能穿越路由器,不能被转发到其他广播域。 ARP工作过程 以下图为例,主机A需要访问主机C。 1.主机A发送一个数据包给主机C之前,首先要获取主机C的MAC地址。 但此时我们用arp -a查看arp表。发现没有数据,于是我们的第一个包就需要 发一个广播包请求 主机C mac地址 2.主级A发送一个 请求包 ,请求包一般都是广播的数据帧,所以目的mac地址为全F,源ip地址,源mac地址也都包含的ARP数据包里。 3.主级C收到广播包之后,将包中在这里源头ip、源mac地址记录到arp表中,并回复一个 单播 包给主级A,该包源ip源mac都是是主级C的。 ARP代理 位于不同网络的网络设备在 不配置网关 的情况下,能够通过ARP代理实现相互通信。需要了解的是,这样目的ip地址所对应的mac地址是

接口测试-chap2-关于重定向

China☆狼群 提交于 2020-01-22 16:26:01
重定向: 301:资源永久转移 302:资源暂时转移到另一个地址了 1.如果请求接口时发生了重定向,python会自动跟随重定向,对重定向地址发起请求,最后只能得到重定向地址的响应结果。而看不到重定向的这一中间过程。 2.如果想要看到重定向返回的中间地址,在发起请求时,传入参数allow_redirects=False, 这样就不会自动去请求重定向的地址,而是返回一个302。可以通过响应头中的Location获取重定向地址 res = requests.get(url, allow_redirects=False) new_url = res.headers["Location"] 来源: https://www.cnblogs.com/come202011/p/12228782.html

总结二十六

萝らか妹 提交于 2020-01-22 16:09:18
MAC地址分析 ( 1) MAC地址有 48位,但它通常被表示为 12位的点分十六进制数 ( 2) MAC地址全球唯一,有 IEEE对这些进行管理和分配。每个地址都由两部分组成,分别是供应商代码和序列号。其中前 24位二进制代表该供应商代码,剩下的 24位由厂商自己分配。 ( 3)如果 48位全是 1,则表明该地址是广播地址。 ( 4)如果第八位是 1,则表明该地址是组播地址。 来源: https://www.cnblogs.com/kkss/p/10917488.html