在Python代码中检查数据库中的有效Mac地址

在Python代码中检查数据库中的有效Mac地址,python,Python,我想在python脚本运行之前添加Mac地址(验证)检查。我在网上有一个数据库。所以在脚本中,我想在运行脚本之前添加这个mac地址检查 我的剧本现在有这个 从我的Web服务器下载文件 所以我的剧本以后想变成这样 从我的Android设备获取Mac地址。然后使用预定义列表(db文件)检查Mac地址是否有效 如果有效的话 从我的web服务器下载文件这个简单的python程序将帮助您找到有效的mac地址 import re def checkMAC(x): if re.match("[0

我想在python脚本运行之前添加Mac地址(验证)检查。我在网上有一个数据库。所以在脚本中,我想在运行脚本之前添加这个mac地址检查

我的剧本现在有这个

从我的Web服务器下载文件

所以我的剧本以后想变成这样

从我的Android设备获取Mac地址。然后使用预定义列表(db文件)检查Mac地址是否有效

如果有效的话


从我的web服务器下载文件

这个简单的python程序将帮助您找到有效的mac地址

import re

def checkMAC(x):
      if re.match("[0-9a-f]{2}([-:])[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", x.lower()):
            return 1
    else:
            return 0

print checkMAC("AA:BB:CC:DD:EE:FF")
print checkMAC("00-11-22-33-44-66")
print checkMAC("1 2 3 4 5 6 7 8 9 a b c")
print checkMAC("This is not a mac")
它接受带:或-的12个十六进制数字作为对之间的分隔符(但分隔符必须一致…所有分隔符都是:或都是-)

这就是解释:

[0-9a-f]表示十六进制数字

{2} 意味着我们想要两个

[-:]表示破折号或冒号。请注意,破折号作为第一个字符并不意味着一个范围,而是意味着它本身。这个原子被括在括号中,以便以后可以作为反向引用重用

[0-9a-f]{2}是另一对十六进制数字

\1这意味着我们要匹配之前匹配的表达式作为分隔符。这就是保证一致性的原因。请注意,regexp语法是\1,但我使用的是常规字符串,因此必须通过将其加倍来转义反斜杠

[0-9a-f]{2}另一对十六进制数字

{4} 上一个括号中的块必须重复4次,总共有6对数字:()*4


$字符串必须紧跟其后

这个简单的python程序将帮助您找到有效的mac地址

import re

def checkMAC(x):
      if re.match("[0-9a-f]{2}([-:])[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", x.lower()):
            return 1
    else:
            return 0

print checkMAC("AA:BB:CC:DD:EE:FF")
print checkMAC("00-11-22-33-44-66")
print checkMAC("1 2 3 4 5 6 7 8 9 a b c")
print checkMAC("This is not a mac")
它接受带:或-的12个十六进制数字作为对之间的分隔符(但分隔符必须一致…所有分隔符都是:或都是-)

这就是解释:

[0-9a-f]表示十六进制数字

{2} 意味着我们想要两个

[-:]表示破折号或冒号。请注意,破折号作为第一个字符并不意味着一个范围,而是意味着它本身。这个原子被括在括号中,以便以后可以作为反向引用重用

[0-9a-f]{2}是另一对十六进制数字

\1这意味着我们要匹配之前匹配的表达式作为分隔符。这就是保证一致性的原因。请注意,regexp语法是\1,但我使用的是常规字符串,因此必须通过将其加倍来转义反斜杠

[0-9a-f]{2}另一对十六进制数字

{4} 上一个括号中的块必须重复4次,总共有6对数字:()*4


$字符串必须紧跟其后

这个简单的python程序将帮助您找到有效的mac地址

import re

def checkMAC(x):
      if re.match("[0-9a-f]{2}([-:])[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", x.lower()):
            return 1
    else:
            return 0

print checkMAC("AA:BB:CC:DD:EE:FF")
print checkMAC("00-11-22-33-44-66")
print checkMAC("1 2 3 4 5 6 7 8 9 a b c")
print checkMAC("This is not a mac")
它接受带:或-的12个十六进制数字作为对之间的分隔符(但分隔符必须一致…所有分隔符都是:或都是-)

这就是解释:

[0-9a-f]表示十六进制数字

{2} 意味着我们想要两个

[-:]表示破折号或冒号。请注意,破折号作为第一个字符并不意味着一个范围,而是意味着它本身。这个原子被括在括号中,以便以后可以作为反向引用重用

[0-9a-f]{2}是另一对十六进制数字

\1这意味着我们要匹配之前匹配的表达式作为分隔符。这就是保证一致性的原因。请注意,regexp语法是\1,但我使用的是常规字符串,因此必须通过将其加倍来转义反斜杠

[0-9a-f]{2}另一对十六进制数字

{4} 上一个括号中的块必须重复4次,总共有6对数字:()*4


$字符串必须紧跟其后

这个简单的python程序将帮助您找到有效的mac地址

import re

def checkMAC(x):
      if re.match("[0-9a-f]{2}([-:])[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", x.lower()):
            return 1
    else:
            return 0

print checkMAC("AA:BB:CC:DD:EE:FF")
print checkMAC("00-11-22-33-44-66")
print checkMAC("1 2 3 4 5 6 7 8 9 a b c")
print checkMAC("This is not a mac")
它接受带:或-的12个十六进制数字作为对之间的分隔符(但分隔符必须一致…所有分隔符都是:或都是-)

这就是解释:

[0-9a-f]表示十六进制数字

{2} 意味着我们想要两个

[-:]表示破折号或冒号。请注意,破折号作为第一个字符并不意味着一个范围,而是意味着它本身。这个原子被括在括号中,以便以后可以作为反向引用重用

[0-9a-f]{2}是另一对十六进制数字

\1这意味着我们要匹配之前匹配的表达式作为分隔符。这就是保证一致性的原因。请注意,regexp语法是\1,但我使用的是常规字符串,因此必须通过将其加倍来转义反斜杠

[0-9a-f]{2}另一对十六进制数字

{4} 上一个括号中的块必须重复4次,总共有6对数字:()*4



$字符串必须紧跟其后

请添加代码以更好地解释。请更清楚地了解您要查找的内容。检查MAC地址:是指有效的MAC地址,还是您有一个预定义的列表?您必须从网络流量中提取MAC地址,或者您拥有MAC地址。MAC-address auth表示脚本作为服务运行?在港口上可以到达吗?而且只在局域网上运行?@timkoffu甚至不在局域网上运行,只在本地子网上运行,而本地子网可以小得多。此外,MAC地址无法直接使用,必须通过ARP解决,而ARP在不同的操作系统上的处理方式不同。它在android上运行。是的,我有预定义的列表。在.db文件上。首先要从我的Android设备上获取mac地址,然后检查是否与db文件匹配。请添加代码以更好地解释。请更清楚地了解您要查找的内容。检查MAC地址:是指有效的MAC地址,还是您有一个预定义的列表?您必须从网络流量中提取MAC地址,或者您拥有MAC地址。MAC-address auth表示脚本作为服务运行?在港口上可以到达吗?而且只能在局域网上运行?@Timkoffu No ev