예제 #1
0
def test_ubuntu_1804_interface(benchmark, mocker, get_sample):
    mocker.patch('getmac.getmac.WINDOWS', False)
    mocker.patch('getmac.getmac.DARWIN', False)
    mocker.patch('getmac.getmac.BSD', False)
    mocker.patch('getmac.getmac.OPENBSD', False)
    mocker.patch('getmac.getmac.FREEBSD', False)
    mocker.patch('getmac.getmac.LINUX', True)
    mocker.patch('getmac.getmac.WSL', False)

    content = get_sample('ubuntu_18.04/ifconfig_ens33.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    result = benchmark(getmac.get_mac_address, interface='ens33')
    assert '00:0c:29:b5:72:37' == result

    # TODO: going to need to do some mock.side_effect hacking here
    # content = get_sample('ubuntu_18.04/ifconfig.out')
    # mocker.patch('getmac.getmac._call_proc', return_value=content)
    # assert '00:0c:29:b5:72:37' == getmac.get_mac_address(interface='ens33')

    content = get_sample('ubuntu_18.04/ip_link_list.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    result = getmac.get_mac_address(interface='ens33')
    assert '00:0c:29:b5:72:37' == result

    # TODO: mock return value so we're hitting the right regex
    content = get_sample('ubuntu_18.04/ip_link.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    result = getmac.get_mac_address(interface='ens33')
    assert '00:0c:29:b5:72:37' == result
예제 #2
0
def test_ubuntu_1804_remote(benchmark, mocker, get_sample):
    mocker.patch("getmac.getmac.WINDOWS", False)
    mocker.patch("getmac.getmac.DARWIN", False)
    mocker.patch("getmac.getmac.OPENBSD", False)
    mocker.patch("getmac.getmac.FREEBSD", False)
    mocker.patch("getmac.getmac.LINUX", True)
    mocker.patch("getmac.getmac.WSL", False)

    content = get_sample("ubuntu_18.04/arp_-a.out")
    mocker.patch("getmac.getmac._popen", return_value=content)
    result = benchmark(getmac.get_mac_address, ip="192.168.16.2")
    assert "00:50:56:f1:4c:50" == result

    # TODO: mock return value so we're hitting the right regex
    content = get_sample("ubuntu_18.04/arp_-an.out")
    mocker.patch("getmac.getmac._popen", return_value=content)
    result = getmac.get_mac_address(ip="192.168.16.2")
    assert "00:50:56:f1:4c:50" == result

    content = get_sample("ubuntu_18.04/cat_proc-net-arp.out")
    mocker.patch("getmac.getmac._read_file", return_value=content)
    result = getmac.get_mac_address(ip="192.168.16.2")
    assert "00:50:56:f1:4c:50" == result

    content = get_sample("ubuntu_18.04/ip_neighbor_show_192-168-16-2.out")
    mocker.patch("getmac.getmac._popen", return_value=content)
    result = getmac.get_mac_address(ip="192.168.16.2")
    assert "00:50:56:f1:4c:50" == result

    # TODO: mock return value so we're hitting the right regex
    content = get_sample("ubuntu_18.04/ip_neighbor_show.out")
    mocker.patch("getmac.getmac._popen", return_value=content)
    result = getmac.get_mac_address(ip="192.168.16.2")
    assert "00:50:56:f1:4c:50" == result
예제 #3
0
def test_ubuntu_1804_remote(benchmark, mocker, get_sample):
    mocker.patch('getmac.getmac.WINDOWS', False)
    mocker.patch('getmac.getmac.DARWIN', False)
    mocker.patch('getmac.getmac.OPENBSD', False)
    mocker.patch('getmac.getmac.FREEBSD', False)
    mocker.patch('getmac.getmac.LINUX', True)
    mocker.patch('getmac.getmac.WSL', False)

    content = get_sample('ubuntu_18.04/arp_-a.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    result = benchmark(getmac.get_mac_address, ip='192.168.16.2')
    assert '00:50:56:f1:4c:50' == result

    # TODO: mock return value so we're hitting the right regex
    content = get_sample('ubuntu_18.04/arp_-an.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    result = getmac.get_mac_address(ip='192.168.16.2')
    assert '00:50:56:f1:4c:50' == result

    content = get_sample('ubuntu_18.04/cat_proc-net-arp.out')
    mocker.patch('getmac.getmac._read_file', return_value=content)
    result = getmac.get_mac_address(ip='192.168.16.2')
    assert '00:50:56:f1:4c:50' == result

    content = get_sample('ubuntu_18.04/ip_neighbor_show_192-168-16-2.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    result = getmac.get_mac_address(ip='192.168.16.2')
    assert '00:50:56:f1:4c:50' == result

    # TODO: mock return value so we're hitting the right regex
    content = get_sample('ubuntu_18.04/ip_neighbor_show.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    result = getmac.get_mac_address(ip='192.168.16.2')
    assert '00:50:56:f1:4c:50' == result
예제 #4
0
def test_openbsd_remote(benchmark, mocker, get_sample):
    mocker.patch("getmac.getmac.WINDOWS", False)
    mocker.patch("getmac.getmac.DARWIN", False)
    mocker.patch("getmac.getmac.BSD", True)
    mocker.patch("getmac.getmac.OPENBSD", True)
    mocker.patch("getmac.getmac.FREEBSD", False)
    mocker.patch("getmac.getmac.LINUX", False)

    content = get_sample("openbsd_6/arp_an.out")
    mocker.patch("getmac.getmac._popen", return_value=content)
    assert "52:54:00:12:35:02" == benchmark(getmac.get_mac_address,
                                            ip="10.0.2.2")
    assert "52:54:00:12:35:03" == getmac.get_mac_address(ip="10.0.2.3")
    assert "08:00:27:18:64:56" == getmac.get_mac_address(ip="10.0.2.15")
예제 #5
0
def test_openbsd_remote(benchmark, mocker, get_sample):
    mocker.patch('getmac.getmac.WINDOWS', False)
    mocker.patch('getmac.getmac.DARWIN', False)
    mocker.patch('getmac.getmac.BSD', True)
    mocker.patch('getmac.getmac.OPENBSD', True)
    mocker.patch('getmac.getmac.FREEBSD', False)
    mocker.patch('getmac.getmac.LINUX', False)

    content = get_sample('openbsd_6/arp_an.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    assert '52:54:00:12:35:02' == benchmark(getmac.get_mac_address,
                                            ip='10.0.2.2')
    assert '52:54:00:12:35:03' == getmac.get_mac_address(ip='10.0.2.3')
    assert '08:00:27:18:64:56' == getmac.get_mac_address(ip='10.0.2.15')
예제 #6
0
def test_darwin_remote(mocker, get_sample):
    mocker.patch("getmac.getmac.WINDOWS", False)
    mocker.patch("getmac.getmac.DARWIN", True)
    mocker.patch("getmac.getmac.BSD", False)
    mocker.patch("getmac.getmac.OPENBSD", False)
    mocker.patch("getmac.getmac.FREEBSD", False)
    mocker.patch("getmac.getmac.LINUX", False)

    content = get_sample("OSX/arp_-a.out")
    mocker.patch("getmac.getmac._popen", return_value=content)
    assert "58:6d:8f:07:c9:94" == getmac.get_mac_address(ip="192.168.1.1")

    # TODO: mock return value so we're hitting the right regex
    content = get_sample("OSX/arp_-an.out")
    mocker.patch("getmac.getmac._popen", return_value=content)
    assert "58:6d:8f:07:c9:94" == getmac.get_mac_address(ip="192.168.1.1")
예제 #7
0
 def attendance_manual(self,
                       next_action,
                       entered_pin=None,
                       mac_address=None):
     data = request.httprequest
     mac_address = ':'.join(re.findall('..', '%012x' % uuid.getnode()))
     gws = netifaces.gateways()
     mac_address = getmac.get_mac_address(ip=gws['default'].values()[0][0],
                                          network_request=False)
     attendances_config_id = self.env['attendances.config'].search(
         [('name', '=', mac_address)], limit=1)
     if not attendances_config_id:
         remote_addr = realip_remote_addr = False
         try:
             remote_addr = data.remote_addr
         except:
             True
         try:
             realip_remote_addr = data.realip_remote_addr
         except:
             True
         result = {
             'remote_addr': remote_addr,
             'realip_remote_addr': realip_remote_addr,
         }
         environ = {}
         for key, value in data.environ.items():
             if type(value) == str:
                 environ.update({key: value})
         result.update({'environ': environ})
         return {'warning': _(mac_address + "____" + json.dumps(result))}
     res = super(hr_employee_inherit,
                 self).attendance_manual(next_action, entered_pin)
     return res
예제 #8
0
def test_darwin_remote(mocker, get_sample):
    mocker.patch('getmac.getmac.WINDOWS', False)
    mocker.patch('getmac.getmac.DARWIN', True)
    mocker.patch('getmac.getmac.BSD', False)
    mocker.patch('getmac.getmac.OPENBSD', False)
    mocker.patch('getmac.getmac.FREEBSD', False)
    mocker.patch('getmac.getmac.LINUX', False)

    content = get_sample('OSX/arp_-a.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    assert '58:6d:8f:07:c9:94' == getmac.get_mac_address(ip='192.168.1.1')

    # TODO: mock return value so we're hitting the right regex
    content = get_sample('OSX/arp_-an.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    assert '58:6d:8f:07:c9:94' == getmac.get_mac_address(ip='192.168.1.1')
예제 #9
0
def test_darwin_interface(mocker, get_sample):
    mocker.patch("getmac.getmac.WINDOWS", False)
    mocker.patch("getmac.getmac.DARWIN", True)
    mocker.patch("getmac.getmac.BSD", False)
    mocker.patch("getmac.getmac.OPENBSD", False)
    mocker.patch("getmac.getmac.FREEBSD", False)
    mocker.patch("getmac.getmac.LINUX", False)

    content = get_sample("OSX/ifconfig.out")
    mocker.patch("getmac.getmac._popen", return_value=content)
    assert "2c:f0:ee:2f:c7:de" == getmac.get_mac_address(interface="en0")
예제 #10
0
def test_openbsd_interface(mocker, get_sample):
    mocker.patch('getmac.getmac.WINDOWS', False)
    mocker.patch('getmac.getmac.DARWIN', False)
    mocker.patch('getmac.getmac.BSD', True)
    mocker.patch('getmac.getmac.OPENBSD', True)
    mocker.patch('getmac.getmac.FREEBSD', False)
    mocker.patch('getmac.getmac.LINUX', False)

    content = get_sample('openbsd_6/ifconfig.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    assert '08:00:27:18:64:56' == getmac.get_mac_address(interface='em0')

    # TODO: mock return value so we're hitting the right regex
    content = get_sample('openbsd_6/ifconfig_em0.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    assert '08:00:27:18:64:56' == getmac.get_mac_address(interface='em0')
    # Default route
    mocker.patch('getmac.getmac._get_default_iface_openbsd',
                 return_value='em0')
    assert '08:00:27:18:64:56' == getmac.get_mac_address()
예제 #11
0
def test_openbsd_interface(mocker, get_sample):
    mocker.patch("getmac.getmac.WINDOWS", False)
    mocker.patch("getmac.getmac.DARWIN", False)
    mocker.patch("getmac.getmac.BSD", True)
    mocker.patch("getmac.getmac.OPENBSD", True)
    mocker.patch("getmac.getmac.FREEBSD", False)
    mocker.patch("getmac.getmac.LINUX", False)

    content = get_sample("openbsd_6/ifconfig.out")
    mocker.patch("getmac.getmac._popen", return_value=content)
    assert "08:00:27:18:64:56" == getmac.get_mac_address(interface="em0")

    # TODO: mock return value so we're hitting the right regex
    content = get_sample("openbsd_6/ifconfig_em0.out")
    mocker.patch("getmac.getmac._popen", return_value=content)
    assert "08:00:27:18:64:56" == getmac.get_mac_address(interface="em0")
    # Default route
    mocker.patch("getmac.getmac._get_default_iface_openbsd",
                 return_value="em0")
    assert "08:00:27:18:64:56" == getmac.get_mac_address()
예제 #12
0
def test_darwin_interface(mocker, get_sample):
    mocker.patch('getmac.getmac.WINDOWS', False)
    mocker.patch('getmac.getmac.DARWIN', True)
    mocker.patch('getmac.getmac.BSD', False)
    mocker.patch('getmac.getmac.OPENBSD', False)
    mocker.patch('getmac.getmac.FREEBSD', False)
    mocker.patch('getmac.getmac.LINUX', False)

    content = get_sample('OSX/ifconfig.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    assert '2c:f0:ee:2f:c7:de' == getmac.get_mac_address(interface='en0')
예제 #13
0
def IpScanNetwork(Ini, End, speed):
    if speed == "fast":
        Speed = 0.3
    elif speed == "low":
        Speed = 4
    r = {}
    with open('return/Ips.json', 'w') as json_file:
        json.dump(r, json_file, indent=4)

    with open('return/Ips.json') as f:
        fre = json.load(f)

    inicial = IPv4Address(Ini)
    final = IPv4Address(End)
    o = 0
    ips = [str(IPv4Address(ip)) for ip in range(int(inicial), int(final))]
    try:
        for ip in ips:
            t = ping(ip, timeout=Speed)
            status = False if t is None else True

            if status:
                o = o + 1
                print(f'IP: {ip} [{status}]')
                try:
                    eth_mac = get_mac_address(interface="eth0")
                    win_mac = get_mac_address(interface="Ethernet 3")
                    ip_mac = get_mac_address(ip=ip)
                    ip6_mac = get_mac_address(ip6="::1")
                    host_mac = get_mac_address(hostname="localhost")
                    updated_mac = get_mac_address(ip="10.0.0.1",
                                                  network_request=True)
                    getmac.PORT = 44444
                    mac = getmac.get_mac_address(ip=ip, network_request=True)
                    fabri = MacLookup().lookup(mac)
                    result = {
                        "Ip": ip,
                        "Status": status,
                        "mac": mac,
                        "fabri": fabri
                    }

                    fre[f"Scan{o}"] = result
                except AttributeError:
                    print('Cod: 703')

                    return "Network Erro 02 703"

        with open('return/ips.json', 'w') as json_file:
            json.dump(fre, json_file, indent=4)
            json_file.close()
    except PermissionError:
        print('Cod: 359')
예제 #14
0
def scan(firs,las):
    address = firs + las
    IP = address
    macAddress = getmac.get_mac_address(ip=str(address))
    
    if macAddress:
        addressDict = {
            "IP": IP,
            "MAC": macAddress
        }
        print("Received",IP)
        validAddresses.append(addressDict)
예제 #15
0
def test_windows_10_interface(benchmark, mocker, get_sample):
    mocker.patch('getmac.getmac.WINDOWS', True)
    mocker.patch('getmac.getmac.DARWIN', False)
    mocker.patch('getmac.getmac.BSD', False)
    mocker.patch('getmac.getmac.OPENBSD', False)
    mocker.patch('getmac.getmac.FREEBSD', False)
    mocker.patch('getmac.getmac.LINUX', False)
    mocker.patch('getmac.getmac.WSL', False)

    content = get_sample('windows_10/getmac.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    result = benchmark(getmac.get_mac_address, interface='Ethernet 2')
    assert '74:d4:35:e9:45:71' == result

    content = get_sample('windows_10/ipconfig-all.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    result = getmac.get_mac_address(interface='Ethernet 3')
    assert '74:d4:35:e9:45:71' == result

    content = get_sample('windows_10/wmic_nic.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    result = getmac.get_mac_address(interface='Ethernet 3')
    assert '00:ff:17:15:f8:c8' == result
예제 #16
0
    def getDeviceInfo(self, request):
        info = dict()
        x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
        
        if x_forwarded_for:
            ip = x_forwarded_for.split(',')[0]
        else:
            ip = request.META.get('REMOTE_ADDR')

        mac = getmac.get_mac_address(ip=ip)
        
        info['ip'] = ip
        info['mac'] = mac
        return info
예제 #17
0
def test_freebsd_interface(benchmark, mocker, get_sample):
    mocker.patch("getmac.getmac.WINDOWS", False)
    mocker.patch("getmac.getmac.DARWIN", False)
    mocker.patch("getmac.getmac.BSD", True)
    mocker.patch("getmac.getmac.OPENBSD", False)
    mocker.patch("getmac.getmac.FREEBSD", True)
    mocker.patch("getmac.getmac.LINUX", False)

    content = get_sample("freebsd11/ifconfig_em0.out")
    mocker.patch("getmac.getmac._popen", return_value=content)
    assert "08:00:27:33:37:26" == getmac.get_mac_address(interface="em0")
    # Default route
    mocker.patch("getmac.getmac._get_default_iface_freebsd",
                 return_value="em0")
    assert "08:00:27:33:37:26" == benchmark(getmac.get_mac_address)
예제 #18
0
def test_freebsd_interface(benchmark, mocker, get_sample):
    mocker.patch('getmac.getmac.WINDOWS', False)
    mocker.patch('getmac.getmac.DARWIN', False)
    mocker.patch('getmac.getmac.BSD', True)
    mocker.patch('getmac.getmac.OPENBSD', False)
    mocker.patch('getmac.getmac.FREEBSD', True)
    mocker.patch('getmac.getmac.LINUX', False)

    content = get_sample('freebsd11/ifconfig_em0.out')
    mocker.patch('getmac.getmac._call_proc', return_value=content)
    assert '08:00:27:33:37:26' == getmac.get_mac_address(interface='em0')
    # Default route
    mocker.patch('getmac.getmac._get_default_iface_freebsd',
                 return_value='em0')
    assert '08:00:27:33:37:26' == benchmark(getmac.get_mac_address)
예제 #19
0
    def scanForMac(self,last):
        
        
        vend = ""
        data = {}
        hopCount = 1
        data["IP info"] = []
        address = str(self.ipPrefix) + str(last)
        IP = address
        
        
        hostname = IP
        
        if "y" in self.traceRouteQ or "1" in self.traceRouteQ:
            hopCount = self.traceRoutes(IP)
        

        print("\n Scanning IP: ",IP,"\n")
        print(socket.getfqdn(IP))
       
        macAddress = getmac.get_mac_address(ip=str(address))

        if macAddress:
            vendor = self.findVendor(macAddress)
            try:
                hostname,aliasList,lanIP = socket.gethostbyaddr(socket.gethostbyname(IP))
            except:
                hostname = ""
                pass
            
            addressDict = {
                "IP": IP,
                "MAC": macAddress,
                "Vendor":vendor,
                "Hostname":hostname,
                "Hops":hopCount
                
                
            }
            print("Received",IP)
            print(addressDict)
            validAddresses["Devices"].append(addressDict)
예제 #20
0
def get_mac_address_list(ip_address='192.168.1.1',
                         i_range=[1, 255],
                         hide_empty_macs=False,
                         hide_device_names=False) -> list:
    device_parser = manuf.MacParser(update=False)
    mac_address_list = []
    ip_parts = ip_address.split('.')
    get_device_ip()

    for iter in range(i_range[0], i_range[1]):

        current_ip = f'{ip_parts[0]}.{ip_parts[1]}.{ip_parts[2]}.{iter}'

        mac_addr = get_mac_address(ip=current_ip, network_request=True)

        mac_dict = {'ip': current_ip, 'mac': mac_addr, 'device': None}

        if mac_addr != '00:00:00:00:00:00' and mac_addr != None:
            device_name = device_parser.get_manuf_long(str(mac_addr))
            if device_name != None:
                mac_dict['device'] = "Not Available"
                mac_address_list.append(mac_dict)
            elif (hide_device_names != True):
                mac_dict['device'] = "Not available"
                mac_address_list.append(mac_dict)
        elif (hide_empty_macs != True):
            mac_dict['mac'] = "00:00:00:00:00:00"
            mac_dict['device'] = "Not available"
            mac_address_list.append(mac_dict)
        elif (current_ip == get_device_ip()):
            mac_addr = getmac.get_mac_address(
                network_request=False, interface=current_network_interface)
            device_name = device_parser.get_manuf_long(str(mac_addr))
            mac_dict[
                'ip'] = f'{ip_parts[0]}.{ip_parts[1]}.{ip_parts[2]}.{iter}'
            mac_dict['device'] = "Not available"
            mac_dict['mac'] = mac_addr
            mac_address_list.append(mac_dict)
    print('ARP table len: ', len(mac_address_list))
    return mac_address_list
예제 #21
0
from getmac import getmac
from getmac import get_mac_address
from mac_vendor_lookup import MacLookup
eth_mac = get_mac_address(interface="eth0")
win_mac = get_mac_address(interface="Ethernet 3")
ip_mac = get_mac_address(ip="192.168.0.103")
ip6_mac = get_mac_address(ip6="::1")
host_mac = get_mac_address(hostname="localhost")
updated_mac = get_mac_address(ip="10.0.0.1", network_request=True)
getmac.PORT = 44444
mac = getmac.get_mac_address(ip="192.168.0.103", network_request=True)
fabri = MacLookup().lookup(str(mac))
print(mac)
print(fabri)
예제 #22
0
def getMac():
    macAdd = getmac.get_mac_address()
    showinfo("MAC Address", f'MAC address is: {macAdd}')
def mac():
    mac_add = getmac.get_mac_address()
    showinfo("MAC Address", f"MAC Address : {mac_add}")
예제 #24
0
from getmac import get_mac_address
eth_mac = get_mac_address(interface="eth0")
win_mac = get_mac_address(interface="Ethernet 3")
ip_mac = get_mac_address(ip="192.168.0.1")
#ip6_mac = get_mac_address(ip6="::1")
host_mac = get_mac_address(hostname="localhost")
updated_mac = get_mac_address(ip="10.0.0.1", network_request=True)

# Enabling debugging
from getmac import getmac
getmac.DEBUG = 2  # DEBUG level 2
print(getmac.get_mac_address(interface="Ethernet 3"))

# Changing the port used for updating ARP table (UDP packet)
from getmac import getmac
getmac.PORT = 44444  # Default: 55555
print(get_mac_address(ip="192.168.0.1", network_request=True))
예제 #25
0
#!/usr/bin/env python3

from lib.packet import Ether, ICMP, TCP, IPv4, ARP
from lib.helper import ETH_P_IP, ETH_P_ARP, ETH_P_ALL, Unpacker

import socket
import netifaces
from getmac import getmac

s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(ETH_P_ALL))

source = netifaces.ifaddresses('ens33')[netifaces.AF_INET][0]['addr']
sourceMac = netifaces.ifaddresses('ens33')[netifaces.AF_LINK][0]['addr']
dest = '192.168.1.106'
destMac = getmac.get_mac_address(ip=dest, network_request=True)

eth = Ether(sourceMac, destMac)
ip = IPv4(source, dest)
icmp = ICMP()

eth_p = eth.packet(ETH_P_IP)
icmp_p = icmp.packet(8, 0)
ip_p = ip.packet(socket.IPPROTO_ICMP, 64, icmp_p)

s.bind(('ens33', 0))
s.send(eth_p + ip_p + icmp_p)

u = Unpacker(eth_p + ip_p + icmp_p)
print(u.icmp())
예제 #26
0
def arp_mac_lookup(host):
    mac = getmac.get_mac_address(ip=str(host), network_request=True)
    print("host: ", str(host), "mac: ", mac)
    return str(mac)
예제 #27
0
 def get_mac():
     #return mac
     #retorna o mac
     return get_mac_address()
def macaddress():
    addmac = getmac.get_mac_address()
    return f"MAC Address : {addmac}"