def get_host_devices(iface_prefix=''):
rst = {}
for ifacename in netifaces.interfaces():
if not ifacename.startswith(iface_prefix):
continue
addrs = netifaces.ifaddresses(ifacename)
if netifaces.AF_INET in addrs and netifaces.AF_LINK in addrs:
ips = [addr['addr'] for addr in addrs[netifaces.AF_INET]]
for ip in ips:
if is_ip4_loopback(ip):
break
else:
rst[ifacename] = {'INET': addrs[netifaces.AF_INET],
'LINK': addrs[netifaces.AF_LINK]}
return rst
python类AF_LINK的实例源码
def get_if_raw_hwaddr(iff):
err = create_string_buffer(PCAP_ERRBUF_SIZE)
devs = POINTER(pcap_if_t)()
ret = b"\0\0\0\0\0\0"
if pcap_findalldevs(byref(devs), err) < 0:
return ret
try:
p = devs
while p:
if p.contents.name.endswith(iff.encode('ascii')):
a = p.contents.addresses
while a:
if hasattr(socket, 'AF_LINK') and a.contents.addr.contents.sa_family == socket.AF_LINK:
ap = a.contents.addr
val = cast(ap, POINTER(sockaddr_dl))
ret = bytes(val.contents.sdl_data[ val.contents.sdl_nlen : val.contents.sdl_nlen + val.contents.sdl_alen ])
a = a.contents.next
break
p = p.contents.next
return ret
finally:
pcap_freealldevs(devs)
def get_if_raw_hwaddr(iff):
err = create_string_buffer(PCAP_ERRBUF_SIZE)
devs = POINTER(pcap_if_t)()
ret = b"\0\0\0\0\0\0"
if pcap_findalldevs(byref(devs), err) < 0:
return ret
try:
p = devs
while p:
if p.contents.name.endswith(iff.encode('ascii')):
a = p.contents.addresses
while a:
if hasattr(socket, 'AF_LINK') and a.contents.addr.contents.sa_family == socket.AF_LINK:
ap = a.contents.addr
val = cast(ap, POINTER(sockaddr_dl))
ret = bytes(val.contents.sdl_data[ val.contents.sdl_nlen : val.contents.sdl_nlen + val.contents.sdl_alen ])
a = a.contents.next
break
p = p.contents.next
return ret
finally:
pcap_freealldevs(devs)
def do_inet(self, _AF):
"""Usage : inet [option], see 'man' for options"""
if _AF == 'AF_INET':
print("\033[1;96m{} : \033[1;m".format(__global_iface__))
print(netifaces.ifaddresses(__global_iface__)[netifaces.AF_INET])
elif _AF == 'AF_LINK':
print("\033[1;96m{} : \033[1;m".format(__global_iface__))
print(netifaces.ifaddresses(__global_iface__)[netifaces.AF_LINK])
elif _AF:
syntax_err('inet')
else:
print("\033[1;96m{} : \033[1;m".format(__global_iface__))
print(netifaces.ifaddresses(__global_iface__))
def get_interfaces():
"""
Return dict with available network interfaces and their addresses.
"""
interfaces = {}
for interface in nif.interfaces():
new_interface = {}
new_interface['name'] = interface
addrs = nif.ifaddresses(interface)
try:
new_interface['ip'] = addrs[nif.AF_INET][0]['addr']
except KeyError:
new_interface['ip'] = 'None'
new_interface['hwaddr'] = addrs[nif.AF_LINK][0]['addr']
interfaces[interface] = new_interface
return interfaces
def get_if_raw_hwaddr(iff):
err = create_string_buffer(PCAP_ERRBUF_SIZE)
devs = POINTER(pcap_if_t)()
ret = b"\0\0\0\0\0\0"
if pcap_findalldevs(byref(devs), err) < 0:
return ret
try:
p = devs
while p:
if p.contents.name.endswith(iff.encode('ascii')):
a = p.contents.addresses
while a:
if hasattr(socket, 'AF_LINK') and a.contents.addr.contents.sa_family == socket.AF_LINK:
ap = a.contents.addr
val = cast(ap, POINTER(sockaddr_dl))
ret = bytes(val.contents.sdl_data[ val.contents.sdl_nlen : val.contents.sdl_nlen + val.contents.sdl_alen ])
a = a.contents.next
break
p = p.contents.next
return ret
finally:
pcap_freealldevs(devs)
def upload(directory='.', oauth='~/oauth', remove=False,
uploader_id=netifaces.ifaddresses('eth0')[netifaces.AF_LINK][0]['addr'].upper()):
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
logger.info("Init Daemon - Press Ctrl+C to quit")
api = Musicmanager()
event_handler = MusicToUpload()
event_handler.api = api
event_handler.path = directory
event_handler.willDelete = remove
event_handler.logger = logger
if not api.login(oauth, uploader_id):
print("Error with oauth credentials")
sys.exit(1)
if remove:
files = [file for file in glob.glob(directory + '/**/*', recursive=True)]
for file_path in files:
if os.path.isfile(file_path):
logger.info("Uploading : " + file_path)
uploaded, matched, not_uploaded = api.upload(file_path, True)
if uploaded or matched:
os.remove(file_path)
observer = Observer()
observer.schedule(event_handler, directory, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--directory", '-d', default='.', help="Music Folder to upload from (default: .)")
parser.add_argument("--oauth", '-a', default='~/oauth', help="Path to oauth file (default: ~/oauth)")
parser.add_argument("-r", "--remove", action='store_true', help="Remove files if present (default: False)")
parser.add_argument("--uploader_id", '-u',
default=netifaces.ifaddresses('eth0')[netifaces.AF_LINK][0]['addr'].upper(),
help="Uploader identification (should be an uppercase MAC address) (default: <current eth0 MAC address>)")
args = parser.parse_args()
upload(args.directory, args.oauth, args.remove, args.uploader_id)
def mac_address():
"""
Return the mac address of computer.
"""
interface = netifaces.ifaddresses('en0')
info = interface[netifaces.AF_LINK]
if info:
return interface[netifaces.AF_LINK][0]["addr"]
def mac_address():
"""
Return the mac address of computer.
"""
interface = netifaces.ifaddresses('en0')
info = interface[netifaces.AF_LINK]
if info:
return interface[netifaces.AF_LINK][0]["addr"]
def get_if_raw_hwaddr(iff):
if iff == scapy.arch.LOOPBACK_NAME:
return (772, '\x00'*6)
try:
s = netifaces.ifaddresses(iff)[netifaces.AF_LINK][0]['addr']
return struct.pack('BBBBBB', *[ int(i, 16) for i in s.split(':') ])
except:
raise Scapy_Exception("Error in attempting to get hw address for interface [%s]" % iff)
return l
def mac(self, interface_name):
"""
interface: str , Interface Name
return: List
[{'addr': '00:12:34:56:78:9a'}]
"""
interface_check = self.interfaces
if not interface_name in interface_check:
raise WrongInterfaceName("Wrong Interface Name %s" % interface_name)
addrs = netifaces.ifaddresses(interface_name)
return addrs[netifaces.AF_LINK]
ssh_login.py 文件源码
项目:Python-Penetration-Testing-for-Developers
作者: PacktPublishing
项目源码
文件源码
阅读 26
收藏 0
点赞 0
评论 0
def get_addresses(interface):
addrs = netifaces.ifaddresses(interface)
link_addr = addrs[netifaces.AF_LINK]
iface_addrs = addrs[netifaces.AF_INET]
iface_dict = iface_addrs[0]
link_dict = link_addr[0]
hwaddr = link_dict.get('addr')
iface_addr = iface_dict.get('addr')
iface_broadcast = iface_dict.get('broadcast')
iface_netmask = iface_dict.get('netmask')
return hwaddr, iface_addr, iface_broadcast, iface_netmask
ifacesdetails.py 文件源码
项目:Python-Penetration-Testing-for-Developers
作者: PacktPublishing
项目源码
文件源码
阅读 19
收藏 0
点赞 0
评论 0
def get_addresses(interface):
addrs = netifaces.ifaddresses(interface)
link_addr = addrs[netifaces.AF_LINK]
iface_addrs = addrs[netifaces.AF_INET]
iface_dict = iface_addrs[0]
link_dict = link_addr[0]
hwaddr = link_dict.get('addr')
iface_addr = iface_dict.get('addr')
iface_broadcast = iface_dict.get('broadcast')
iface_netmask = iface_dict.get('netmask')
return hwaddr, iface_addr, iface_broadcast, iface_netmask
msfrpc_smb.py 文件源码
项目:Python-Penetration-Testing-for-Developers
作者: PacktPublishing
项目源码
文件源码
阅读 21
收藏 0
点赞 0
评论 0
def get_addresses(interface):
addrs = netifaces.ifaddresses(interface)
link_addr = addrs[netifaces.AF_LINK]
iface_addrs = addrs[netifaces.AF_INET]
iface_dict = iface_addrs[0]
link_dict = link_addr[0]
hwaddr = link_dict.get('addr')
iface_addr = iface_dict.get('addr')
iface_broadcast = iface_dict.get('broadcast')
iface_netmask = iface_dict.get('netmask')
return hwaddr, iface_addr, iface_broadcast, iface_netmask
def get_if_raw_hwaddr(iff):
if iff == scapy.arch.LOOPBACK_NAME:
return (772, '\x00'*6)
try:
s = netifaces.ifaddresses(iff)[netifaces.AF_LINK][0]['addr']
return struct.pack('BBBBBB', *[ int(i, 16) for i in s.split(':') ])
except:
raise Scapy_Exception("Error in attempting to get hw address for interface [%s]" % iff)
return l
def get_device_mac(self):
try:
return ifaddresses(self.interface)[AF_LINK][0]['addr']
except KeyError:
return "00:00:00:00:00:00"
def get_netiface_mac_address(interface_name):
try:
mac_address = str(ifaddresses(interface_name)[AF_LINK][0]['addr'])
except:
mac_address = None
return mac_address
def get_netiface_ipv6_link_address(interface_name):
try:
mac_address = str(ifaddresses(interface_name)[AF_LINK][0]['addr'])
parts = mac_address.split(":")
parts.insert(3, "ff")
parts.insert(4, "fe")
parts[0] = "%x" % (int(parts[0], 16) ^ 2)
ipv6Parts = []
for i in range(0, len(parts), 2):
ipv6Parts.append("".join(parts[i:i + 2]))
ipv6_address = "fe80::%s" % (":".join(ipv6Parts))
except:
ipv6_address = None
return ipv6_address
def get_local_mac(self, iface):
return ni.ifaddresses(iface)[ni.AF_LINK][0]['addr']
def get_urmac():
AF_LINK = netifaces.ifaddresses(__global_iface__)[netifaces.AF_LINK]
urmac = str(AF_LINK).split("'addr': '")[1].split("'}")[0]
return urmac
def get_mac_by_name(name: str) -> str:
"""
Get MAC address of interface specified by name of the interface.
:type name: str
:param name: name of the network interface
:rtype: str
:return: string MAC address
"""
ifa = netifaces.ifaddresses(name)
mac = ifa[netifaces.AF_LINK][0]['addr']
return mac
def getMac():
"""Get MAC address."""
addrs = netifaces.ifaddresses('eno1')
maca = addrs[netifaces.AF_LINK][0]['addr']
return maca
def get_mac(cls, interface):
addresses = netifaces.ifaddresses(interface)
if netifaces.AF_LINK in addresses:
return addresses[netifaces.AF_LINK][0]["addr"]
return "0"
def determine_src_mac(iface):
if iface in netifaces.interfaces():
return netifaces.ifaddresses(iface)[netifaces.AF_LINK][0]['addr']
return None
def match_device(self):
interfaces = netifaces.interfaces()
for device in interfaces:
addresses = netifaces.ifaddresses(device)
link_addresses = addresses[netifaces.AF_LINK]
for address in link_addresses:
device_hwaddr = address['addr']
if self.mac.lower() == device_hwaddr.lower():
self.device_name=device
return device
return -1
test_ngs_basic_ops.py 文件源码
项目:networking-generic-switch
作者: openstack
项目源码
文件源码
阅读 19
收藏 0
点赞 0
评论 0
def get_local_port_mac(self, bridge_name):
mac_address = netifaces.ifaddresses(
bridge_name)[netifaces.AF_LINK][0].get('addr')
return mac_address
def getMacAddress(iface):
if(iface in netifaces.interfaces()):
return netifaces.ifaddresses(iface)[netifaces.AF_LINK][0]['addr']
else:
return '0'
def get_if_raw_hwaddr(iff):
if iff == scapy.arch.LOOPBACK_NAME:
return (772, '\x00'*6)
try:
s = netifaces.ifaddresses(iff)[netifaces.AF_LINK][0]['addr']
return struct.pack('BBBBBB', *[ int(i, 16) for i in s.split(':') ])
except:
raise Scapy_Exception("Error in attempting to get hw address for interface [%s]" % iff)
return l
def __init__(self):
self.__records = []
for name in netifaces.interfaces():
if not name.startswith("lo"):
iface = netifaces.ifaddresses(name)
if netifaces.AF_LINK in iface:
self.__records.append(
"MAC_{}={}".format(str(name).upper(), iface[netifaces.AF_LINK][0]['addr']))
if netifaces.AF_INET in iface:
self.__records.append("IP_{}={}".format(str(name).upper(), iface[netifaces.AF_INET][0]['addr']))
with open("/home/tipi/tipi/version.txt", 'r') as fh_in:
for line in fh_in.readlines():
parts = line.split('=')
self.__records.append("{}={}".format(
str(parts[0]).strip().upper(),
str(parts[1]).strip()))
with open("/home/tipi/tipi.uuid", 'r') as fh_in:
self.__records.append("UUID={}".format(fh_in.readline()))
# This needs to work even if there is no network.. thus a catch all.
try:
upgradeCheck = check_output(["/home/tipi/tipi/setup/upgrade.sh"])
latest = upgradeCheck.split('\n')[1]
if latest.startswith("Latest Version: "):
self.__records.append("LATEST={}".format(latest.split(':')[1].strip()))
except Exception as e:
logger.warn("failed to fetch latest version info")