Добрый день, почему то не работает бесконечный цикл while true в pyton. Может кто нибудь подскажет в чем дело...Заранее спасибо... Скрипт приведен ниже:#!/usr/bin/python
#
import random
import subprocess#interfeces = raw_input('input interfeces => ')
def random_mac_adress():while True:
mac = [ 0x00, 0x16, 0x3e,
random.randint(0x00, 0x7f),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]return ':'.join(map(lambda x: "x" % x, mac))
m = random_mac_adress()
""" Change mac adress """
change_mac_address1 = subprocess.call('ifconfig eth1 down', shell=True)
change_mac_address2 = subprocess.call('ifconfig eth1 hw ether {param1}'.format(param1=m), shell=True)
change_mac_address3 = subprocess.call('ifconfig eth1 up', shell=True)print change_mac_address1
print change_mac_address2
print change_mac_address3""" ping broadcast"""
ping_ip = subprocess.call('ping -c 1 127.0.0.1', shell=True)
"""ping_ip = subprocess.call('ping -q -c 1 -I eth1 127.0.0.1', shell=True)"""
print ping_ip
while 1:
Потому что ты его break'нул return'ом, если я правильно понял вопрос.
А как ты хочешь получать данные в переменную от зацикленной функции? у тебя получение расчета прописано 1 раз в строке m = random_mac_adress(). Не логичнее ли while True ставить на присвоение этого значения и дальнейшую его обработку, нежели в самой функции? например так:def random_mac_adress():
mac = [ 0x00, 0x16, 0x3e,
random.randint(0x00, 0x7f),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]return ':'.join(map(lambda x: "x" % x, mac))
while True:
m = random_mac_adress()
...>[оверквотинг удален]
> change_mac_address2 = subprocess.call('ifconfig eth1 hw ether {param1}'.format(param1=m),
> shell=True)
> change_mac_address3 = subprocess.call('ifconfig eth1 up', shell=True)
> print change_mac_address1
> print change_mac_address2
> print change_mac_address3
> """ ping broadcast"""
> ping_ip = subprocess.call('ping -c 1 127.0.0.1', shell=True)
> """ping_ip = subprocess.call('ping -q -c 1 -I eth1 127.0.0.1', shell=True)"""
> print ping_ip
>[оверквотинг удален]
>> change_mac_address2 = subprocess.call('ifconfig eth1 hw ether {param1}'.format(param1=m),
>> shell=True)
>> change_mac_address3 = subprocess.call('ifconfig eth1 up', shell=True)
>> print change_mac_address1
>> print change_mac_address2
>> print change_mac_address3
>> """ ping broadcast"""
>> ping_ip = subprocess.call('ping -c 1 127.0.0.1', shell=True)
>> """ping_ip = subprocess.call('ping -q -c 1 -I eth1 127.0.0.1', shell=True)"""
>> print ping_ip