Source code for api_searcher.windows.network

import socket
import ipaddress
from pyroute2 import IPRoute

[docs]class NetworkCommand:
[docs] @staticmethod def get_arp(): """arp -a""" pass
[docs] @staticmethod def nbtstat(): """ nbtstat -c nbtstat -n nbtstat -r :return: """ pass
[docs] @staticmethod def get_hostname(): """ hostname """ pass
[docs] @staticmethod def ipconfig_all(): """ ipconfig /all """ pass
[docs] @staticmethod def get_nslookup(): """ nslookup :return: """ pass
[docs] @staticmethod def get_getmac(): """ getmac :return: """ pass
[docs] @staticmethod def get_netstat_an(): """ netstat -an :return: """ pass
[docs]class LocalNetworkData: """Klasa zwracajaca informacje o lokalnej sieci."""
[docs] def __init__(self): self.__ip_adress = socket.gethostbyname(socket.gethostname()) self.__network = ipaddress.IPv4Network(self.__ip_adress) self.__netmask = ipaddress.IPv4Network(self.__ip_adress).netmask self.__intefaces = self.get_local_network_interfaces()
@property def ip_address(self): return self.__ip_adress @property def network(self): return self.__network @property def netmask(self): return self.__netmask @property def intefaces(self): return self.__intefaces @property def values(self): return { "ip_address": str(self.ip_address), "network": str(self.network), "netmask": str(self.netmask), "interfaces": self.intefaces }
[docs] @staticmethod def get_local_ip_adress(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) return s.getsockname()[0]
[docs] @staticmethod def get_local_netmask(): ip_addr = socket.gethostbyname(socket.gethostname()) network_adress = ipaddress.IPv4Network(ip_addr) netmask = ipaddress.IPv4Network(ip_addr).netmask return ip_addr, network_adress, netmask
[docs] @staticmethod def get_local_network_interfaces(): ip = IPRoute() # print([x.get_attr('IFLA_IFNAME') for x in ip.get_links()]) info = [{'iface': x['index'], 'addr': x.get_attr('IFA_ADDRESS'), 'mask': x['prefixlen']} for x in ip.get_addr()] return {"iface": [i['iface'] for i in info]}