# IP Lib
# https://realpython.com/python-ipaddress-module/
# Ping IP working any OS , BUT with echo
# https://stackoverflow.com/questions/2953462/pinging-servers-in-python
# VPN
# https://techcrunch.com/2017/04/09/how-i-made-my-own-vpn-server-in-15-minutes/
# https://habr.com/ru/post/170895/
# Видеоуроки
# https://www.youtube.com/playlist?list=PL4p9O5LPYFNvI9LqzS8QKgoeu98QOMTWu
# https://www.youtube.com/watch?v=e6l02YjMcbw
# https://www.youtube.com/watch?v=9lIQMGsD92A
# https://www.kaspersky.ru/blog/vpn-hardships/11622/
# Роутеры
# https://catalog.onliner.by/compare/kn1010+kn1810+kn1910
# https://forum.onliner.by/viewtopic.php?t=22544058
# Файлы загрузки для Keenetic Viva (KN-1910)
# https://help.keenetic.com/hc/ru/articles/360001759419-%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8-%D0%B4%D0%BB%D1%8F-Keenetic-Viva-KN-1910-
# Keenetic Viva VPN-сервер L2TP/IPsec
# https://help.keenetic.com/hc/ru/articles/360000684919-VPN-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80-L2TP-IPsec
# https://www.youtube.com/watch?v=zcCD3135vG4
import socket
import ipaddress
import ping3 # https://github.com/kyan001/ping3
from getmac import get_mac_address
from colorama import Fore, Back, Style
class Local_Network_List():
def __init__(self,NAME,IP,MAC):
self.Comp_NAME = NAME
self.Comp_IP = IP
self.Comp_MAC = MAC
This_Comp_IP_List = []
ThisComp_NAME = socket.gethostname()
ThisComp_IP = socket.gethostbyname( ThisComp_NAME )
ThisComp_MAC = get_mac_address( ip = ThisComp_IP )
print ( Fore.GREEN + " Name " + ThisComp_NAME + Fore.WHITE + "\n IP " + ThisComp_IP + Fore.BLUE + "\n MAC " + ThisComp_MAC )
TempStr = ThisComp_IP.split( "." )
TempStr[3] = 0
TempStr1 = ""
for i in TempStr:
TempStr1 += ''.join( str(i) )
if TempStr.index(i) < 3:
TempStr1 += "."
Start_IP = ipaddress.IPv4Address( TempStr1 )
Start_IP += 0
End_IP = Start_IP + 10
TempStr = TempStr1 + "/24"
net = ipaddress.IPv4Network( TempStr )
Pointer = 0
for Addr in range ( int(ipaddress.IPv4Address(Start_IP) ) , int( ipaddress.IPv4Address( End_IP ) ) ): #net:
ADrStr = str(ipaddress.IPv4Address(Addr))
status = ping3.ping( ADrStr )
if status != None:
ThisComp_MAC = get_mac_address( ip = ADrStr )
try:
ThisComp_NAME = socket.gethostbyaddr( ADrStr )
except:
ThisComp_NAME = ["___"]
This_Comp_IP_List.append ( Local_Network_List( ThisComp_NAME[0], ADrStr, ThisComp_MAC ))
else:
print(" NO IP ")
for x in This_Comp_IP_List:
print ( Fore.GREEN + " Name " + x.Comp_NAME + Fore.WHITE + " IP " + x.Comp_IP + Fore.BLUE + " MAC " + x.Comp_MAC )