Найти - Пользователи
Полная версия: List и MAC'и
Начало » Python для экспертов » List и MAC'и
1
abogdan
Как создать список с элементами-mac адресами вида 0x12345678?
У меня получилось
def nromtest(host, *maclist): # пример: nromtest('com9',0xd05,0x80024366,0x8002432e,0x80024376....)
Но он определяет их как hex. При выводе их через hex() из 0x12345678 получается 0x12345678L, но только в случае с 10 значным mac'ом. Также при использовании в адресе не 16ричного символа выдает ошибку. Вопрос: как можно реализовать в данной функции параметр-список с неопределенным заранее количеством адресов такого вида? Чем меньше заморочек, тем лучше..
Заранее благодарен за помощь.
Singularity

Может надо хранить в строках? listMac = [x for x in maclist] или даже listMac = list(maclist)

abogdan
Singularity
Может надо хранить в строках?
listMac =
Сеть большая.. Строк будет не организоваться..
PooH
abogdan
Как создать список с элементами-mac адресами вида 0x12345678?
У меня получилось
def nromtest(host, *maclist): # пример: nromtest('com9',0xd05,0x80024366,0x8002432e,0x80024376....)
Ну все у вас правильно, именно так, как вы написали.
abogdan
Но он определяет их как hex:mad:.
Ну так вы их и определяете как шестнадцатиричное число, внутри это все равно двоичное число, с каким бы базисом не задавали
abogdan
При выводе их через hex() из 0x12345678 получается 0x12345678L:/, но только в случае с 10 значным mac'ом.
А выводить через свою функцию форматирования
def mac2str(mac):
    return ":".join("%02X" % ((mac >> (5 - i) * 8) & 0xff) for i in range(0, 6))
>>> print mac2str(0xd05)
00:00:00:00:0D:05
>>> print mac2str(0x80024366)
00:00:80:02:43:66
>>> print mac2str(0x8002432e)
00:00:80:02:43:2E
abogdan
Также при использовании в адресе не 16ричного символа выдает ошибку.
А откуда в mac-адресе не 16ричные символы?:/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB