数据类型转换(计算mac地址)

[[email protected] test1]# vim 19.py
//add
#!/usr/bin/python

macaddr = ‘00:0C:29:D1:6F:E9‘
prefix_mac = macaddr[:-3]
last_two = macaddr[-2:]
plus_one = int(last_two, 16) + 1
new_last_two = hex(plus_one)[2:]
new_mac = prefix_mac + ‘:‘ + new_last_two
print new_mac.upper()

/*
    prefix_mac -- 定义mac地址的前缀,要保持前五位不变 [:-3] --从开头取到倒数第三位(冒号也算一位)

    last_two -- 先取最后的两位 ,[-2:]  从倒数第二位一直取到最后

    因为mac地址为16进制,要将其转换为10进制 --plus_one 然后要加1 --得到新的

    然后再把这个新的 16进制 转换为 10进制 -- 有时会打印0x(则表示16进制)
                 -- new_last_two -- [2:]从第三个取到最后

    new_mac --新的地址 ,就是把前缀加上最后计算的两位,利用冒号来连接

    upper() -- 此函数可把 小写字母 变成 大写字母 

*/

[[email protected] test1]# python 19.py
00:0C:29:D1:6F:EA
/* 上面的只是针对某个mac地址写的脚本

    当有什么不一样的地方,可以先通过进入python状态进行测试,

    找到了好的解决方法,再写入脚本中进行显示

*/
/*
    如果 最尾两位为01 ,当转换后 0不会显示, 会显示 1.

    解决方法:
*/

[[email protected] test1]# vim 19.py
//add
#!/usr/bin/python

macaddr = ‘00:0C:29:D1:6F:01‘
prefix_mac = macaddr[:-3]
last_two = macaddr[-2:]
plus_one = int(last_two, 16) + 1
if plus_one in range(10):
    new_last_two = hex(plus_one)[2:]
    new_last_two = ‘0‘ + new_last_two
else:
    new_last_two = hex(plus_one)[2:]
new_mac = prefix_mac + ‘:‘ + new_last_two
print new_mac.upper()
/* 如果最后两位为 0A,则下一个应该为B0,但是0又没办法取到

    解决方法:

*/

[[email protected] test1]# vim 19.py
//add
#!/usr/bin/python

macaddr = ‘00:0C:29:D1:6F:0A‘
prefix_mac = macaddr[:-3]
last_two = macaddr[-2:]
plus_one = int(last_two, 16) + 1
if plus_one in range(10):
    new_last_two = hex(plus_one)[2:]
    new_last_two = ‘0‘ + new_last_two
else:
    new_last_two = hex(plus_one)[2:]
        if len(new_last_two) == 1:
            new_last_two = ‘0‘ + new_last_two
new_mac = prefix_mac + ‘:‘ + new_last_two
print new_mac.upper()
时间: 2024-10-17 05:06:42

数据类型转换(计算mac地址)的相关文章

002-规划IP地址和MAC地址、数据包和数据帧

全球统一规划的IP地址即为公网地址 网络部分+主机部分 网关:到其他网段到经过的 (路由器:负责不同网段中的数据转发) MAC地址:物理地址 网页访问过程: 源地址访问网站时,先查dns,查询目标网站ip地址 物理地址决定下一跳给谁,目标地址决定最终给谁 发送数据: 数据+源地址+目标地址+源MAC地址+下一跳MAC地址 下一跳收到后选择好路径后,修改数据帧 原文地址:https://www.cnblogs.com/qq840066421/p/12273768.html

复习 使用for、while循环遍历文件,数据类型转换

1. python访问文件 通过内置函数open打开文件,看一下open函数解释: 打开文件 返回的是一个文件对象 fd = open('/tmp/tmp.txt') 查看他的方法: 关闭文件: fd.close() 向文件内写入: fd = open('/tmp/tmp.txt', 'w') 这样打开文件等于重写文件,文件原有的内容就覆盖掉了 fd.write("a") 这样写入文件,写入文件后不能查看到,我们必须把他关闭: fd.close() 关闭之后,就可以查看到文件内的信息了

Python中的数据类型转换举例及脚本统计服务器内存实例

统计系统剩余的内存 In [1]: s1 = 'abc' In [2]: help(s1.startswith) Help on built-in function startswith: startswith(...) S.startswith(prefix[, start[, end]]) -> bool Return True if S starts with the specified prefix, False otherwise. With optional start, test

Linux 网络编程——原始套接字实例:MAC 地址扫描器

如果 A (192.168.1.1 )向 B (192.168.1.2 )发送一个数据包,那么需要的条件有 ip.port.使用的协议(TCP/UDP)之外还需要 MAC 地址,因为在以太网数据包中 MAC 地址是必须要有的.那么怎样才能知道对方的 MAC 地址?答案是:它通过 ARP 协议来获取对方的 MAC 地址. ARP(Address Resolution Protocol,地址解析协议),是 TCP/IP 协议族中的一个,主要用于查询指定 ip 所对应的的 MAC(通过 ip 找 MA

Linux 网卡驱动学习之(八)(基于 MAC 地址转发数据)

1.构建MAC地址表 交换机技术在转发数据前必须知道它的每一个端口所连接的主机的MAC地址,构建出一个MAC地址表.当交换机从某个端口收到数据帧后,读取数据帧中封装的目的地MAC地址信息,然后查阅事先构建的MAC地址表,找出和目的地地址相对应的端口,从该端口把数据转发出去,其他端口则不受影响,这样避免了与其它端口上的数据发生碰撞.因此构建MAC地址表是交换机的首要工作.下面举例说明交换机建立地址表的过程. [分析]假设主机A向主机C发送一个数据帧(每一个数据帧中都包含有源MAC地址和目的MAC地

MAC地址(单播、广播、组播、数据收发)

MAC地址 网络设备的MAC地址是全球唯一的.MAC地址长度为48比特,通常用十六进制表示.MAC地址包含两部分:前24比特是组织唯一标识符(OUI,OrganizationallyUniqueIdentifier),由IEEE统一分配给设备制造商. 例如,华为的网络产品的MAC地址前24比特是0x00e0fc.后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备). 单播 局域网上的帧可以通过三种方式发送.第一种是单播,指从单一

网络-数据包在路由转发过程中MAC地址和IP地址,变与不变

关于MAC地址和IP地址在传输过程中变与不变的问题: 结论:MAC地址在同一个广播域传输过程中是不变的,在跨越广播域的时候会发生改变的:而IP地址在传输过程中是不会改变的(除NAT的时候),总结为 路由转发MAC不变,IP变. 我们知道的几个概念: 首先我们要知道,MAC地址是用于同意物理或逻辑第2层网络上的设备间进行通信的: 而第三层地址(IP地址)是可以在多个网络设备之间通信的. 下面我们来分析一下: MAC地址是在同一个广播域有效的,那么去了另外一个广播域(网段)MAC地址肯定要改变的:

中间人攻击——ARP欺骗 就是中间人攻击 利用报文欺骗并修改IP和mac地址之间的映射关系 让传送数据的地址失效

中间人攻击——ARP欺骗的原理.实战及防御 0x01 网关是啥? 网关是工作在OSI七层模型中的传输层或者应用层,用于高层协议的不同 网络之间的连接,网关就好比一个房间通向另一个房间的一扇门. 0x02 ARP协议 ARP(Address Resolution Protocol)地址转换协议,工作在OSI模型的数据链路层,在以太网中,网络设备之间互相通信是用MAC地址而不是IP地址,ARP协议就是用来把IP地址转换为MAC地址的.而RARP和ARP相反,它是反向地址转换协议,把MAC地址转换为I

mac地址学习笔记

MAC(Media Access Control或者Medium Access Control)地址, 意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置. 在OSI模型中,第三层网络层负责  IP地址 第二层数据链路 层则负责 MAC地址.因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址. MAC地址是网卡决定的,是固定的,实际上就是适配器地址或适配器标识符EUI-48. 网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通