Простий скрипт, який змінює ip адресу вибраного інтерфейса на введений, шлюз генеруєтся відповідно введеного ip
import os
ip_address = input("Enter the IP address to set: ")
interface = input("Enter the interface name to set (e.g. Ethernet, Wi-Fi): ")
# Generate gateway based on the IP address
gateway = f"{ip_address.split('.')[0]}.{ip_address.split('.')[1]}.{ip_address.split('.')[2]}.1"
# Run netsh command to set the IP address
os.system(f"netsh interface ip set address \"{interface}\" dhcp" if ip_address.lower() == "auto dhcp" else f"netsh inte>
print(f"IP address {ip_address} has been set on interface {interface} with gateway {gateway} .")
Ось так виглядає робота скрипта:
от так в властивостях мережі показує:
Що наразі не працює: відновлення на “auto” та не пише нормально dns. В моєму випадку це не критично, хоча над цим працюю ))
Також колись бачив програму, для швидкої зміни ip з профілем та іншими блекджеками, але хотів мінімальний скрипт для швидкого переключання.
о, доречі є ще так:
import os
ip_address = input("Enter the IP address to set: ")
interface = input("Enter the interface name to set (e.g. Ethernet, Wi-Fi): ")
# Set subnet mask and default gateway based on the IP address entered
if ip_address.startswith('192.168.7.'):
subnet_mask = '255.255.255.0'
default_gateway = '192.168.7.1'
elif ip_address.startswith('192.168.0.'):
subnet_mask = '255.255.255.0'
default_gateway = '192.168.0.1'
elif ip_address.startswith('192.168.2.'):
subnet_mask = '255.255.255.0'
default_gateway = '192.168.2.1'
else:
print(f"IP address {ip_address} not supported.")
exit()
# Run netsh command to set the IP address
os.system(f"netsh interface ip set address \"{interface}\" dhcp" if ip_address.lower() == "auto dhcp" else f"netsh interface ip set address \"{interface}\" static {ip_address} {subnet_mask} {default_gateway}")
# Set DNS servers
os.system(f"netsh interface ipv4 set dns name=\"{interface}\" static 192.168.7.1 primary validate=no")
os.system(f"netsh interface ipv4 add dns name=\"{interface}\" 1.1.1.1 index=2 validate=no")
print(f"IP address {ip_address} with gateway {default_gateway} and DNS servers 192.168.7.1 and 1.1.1.1 has been set on interface {interface}.")
тут можно зробити готовий скрипт, якщо треба часто якусь певну мережу, та нехватає пам’яті для всіх команд на світі ))
ще щось таке писав:
import netifaces
interface_name = "eth0"
addresses = netifaces.ifaddresses(interface_name)
ip_address = addresses[netifaces.AF_INET][0]["addr"]
subnet_mask = addresses[netifaces.AF_INET][0]["netmask"]
gateway = netifaces.gateways()["default"][netifaces.AF_INET][0]
print(f"Interface: {interface_name}")
print(f"IP Address: {ip_address}")
print(f"Subnet Mask: {subnet_mask}")
print(f"Gateway: {gateway}")