у меня есть код с 2 функциями
я хотел бы вернуть значение одной функции другой
на данный момент его возвращение "none"
у меня есть 2 функции:
1 для адреса vaildip, а другая функция должна получить значения и использовать их при добавлении в файл:
прямо сейчас validip работает в цикле и запрашивает vaild ip, но когда функция завершает работу всех 4-х входов, она возвращает "none" в качестве значения
def vaildIP(message):
while True:
answer1 = raw_input(message)
ip = answer1.split('.')
if (len(ip) == 4) and (1 <= int(ip[0]) <= 223) and (int(ip[0]) != 127) and (int(ip[0]) != 169 or int(ip[1]) != 254) and (
0 <= int(ip[1]) <= 255 and 0 <= int(ip[2]) <= 255 and 0 <= int(ip[3]) <= 255):
break
return answer
else:
print "Please Enter A Vaild IP Address"
continue
def setNetwork():
print "[Network Interface] This step is for configuring the primary network interface (eth0) with a static IP address."
print "[Network Interface] Please provide the new configuration values, or press Enter to use the current value."
print "[Network Interface] Prior to saving the new values you will have the option to review them."
address = vaildIP('Address[current value is < no - value >]:')
netmask = vaildIP('Netmask[current value is < no - value >]:')
gateway = vaildIP('Gateway[current value is < no - value >]:')
print "[Network Interface] Please provide the DNS servers to use (one or more, separated with spaces), \n or press Enter to use the existing value."
dns = vaildIP('DNS servers [current value is <no-value>]:') or "8.8.8.8"
print ("[Network Interface] These will be the new settings for eth0:\n" "iface eth0 inet static\n""Address {addressip} \n"
"Netmask {netmaskip}\n" "Gateway {gatewayip}\n" "dns-nameservers {dnsip}".format(addressip=address, netmaskip=netmask, gatewayip=gateway, dnsip=dns))
print ("Enter 'y' - to save the new configuration and load it.\n" "Enter 'n' - to re-enter the configuration details.\n" "Enter 'q' - to quit and return to main manu.")
option = raw_input()
if option == 'y':
newlines = ('auto lo \n iface lo inet loopback \n # The primary network interface \n auto eth0 \n iface eth0 inet static \n address %s \n netmask %s \n gateway %s \n dns-nameservers %s ' % (
address, netmask, gateway, dns))
with open("/Users/yos/Desktop/net1.txt", "w+") as file:
file.write(newlines)
elif option == 'n':
setNetwork()
elif option == 'q':
sys.exit()
if __name__ == "__main__":
setNetwork()
ожидается:
[Сетевой интерфейс] Это будут новые настройки для eth0:
iface eth0 inet static
Адрес 1.1.1.1 #vaildip
Сетевая маска 2.2.2.2
Шлюз 3.3.3.3
DNS-имена серверов 8.8.8.8
Введите 'y' - чтобы сохранить новую конфигурацию и загрузить ее.
Введите 'n' - для повторного ввода сведений о конфигурации.
Введите 'q' - чтобы выйти и вернуться в главное меню.
п
фактические результаты:
[Сетевой интерфейс] Это будут новые настройки для eth0:
iface eth0 inet static
Адрес Нет
Маска нет
Шлюз Нет
DNS-имена серверов 8.8.8.8
Введите 'y' - чтобы сохранить новую конфигурацию и загрузить ее.
Введите 'n' - для повторного ввода сведений о конфигурации.
Введите 'q' - чтобы выйти и вернуться в главное меню.
п