Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 12, 2011 10:26:57

aivs
От:
Зарегистрирован: 2011-05-26
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

Узнать mac адрес (новичок)

Здравствуйте! Начал изучать python, и потребовалось мне через скрипт узнать mac адрес моей карточки и сохранить его в переменную для дальнейшей работы с ним.
Прочитал про два решение, первый - с помощью regexp парсить вывод ifconfig, второй - с помощью встроенных средств python.
Больше интересует второй вариант! Если кто делал такое, поделитесь знаниями!



Офлайн

#2 Окт. 12, 2011 11:43:32

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

Узнать mac адрес (новичок)

# coding: utf8

from subprocess import Popen, PIPE

p1 = Popen(['ifconfig', '-a'], stdout=PIPE)
p2 = Popen(["grep", "HWaddr"], stdin=p1.stdout, stdout=PIPE)
output = p2.communicate()[0]

print output.split()[-1]



Отредактировано (Окт. 12, 2011 11:59:19)

Офлайн

#3 Окт. 12, 2011 12:24:42

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Узнать mac адрес (новичок)

Офлайн

#4 Окт. 12, 2011 13:16:37

aivs
От:
Зарегистрирован: 2011-05-26
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

Узнать mac адрес (новичок)

dimabest, спасибо Ваш вариант прост и работает
s0rg, почитал тему, пока разбираюсь



Офлайн

#5 Ноя. 24, 2011 15:26:30

aivs
От:
Зарегистрирован: 2011-05-26
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

Узнать mac адрес (новичок)

Вот такую функцию написал, которая возвращает mac адрес в обычном 16-ричном виде.

“”“ Функция получения mac адреса, возвращает mac адрес ”“”
def get_mac(self, interface):
# Выполнить ifconfig eth0
p1 = Popen(, stdout=PIPE)
# и записать вывод в output в виде строки
output = str(p1.communicate())
# Позиция слова ether в строке
pos_word = output.find('ether')
# mac адрес начинается c 6 символа после начала слова ether и кончается на 23 символе после начала слова ether
return output



Отредактировано (Ноя. 25, 2011 14:32:42)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version