С помощью import.socket, есть ли способ получить IP-адрес DHCP вместо этого?или я должен минус один с IP? - PullRequest
1 голос
/ 08 февраля 2012

В соответствии с заголовком я хотел бы получить IP-адрес DHCP подключенных устройств.

Пока у меня есть:

import socket

def getIPAddresses():
    addr = socket.gethostbyname_ex(socket.gethostname())
    for i in addr[2]:
        if "169.254" in i:
            if i != "169.254.0.2":
                print socket.gethostbyaddr(i)

if __name__ == "__main__":
    getIPAddresses()

По сути, сценарий состоит в том, что у меня есть два подключенных блока, которые я хочу подключить к блоку, чей IP не 169.254.0.1.

Полагаю, было бы неплохо, если бы был более эффективный способ написать это, но моей главной задачей было бы вместо этого получить IP-адрес DHCP IP (где IP-адрес DHCP минус 1)

это будет с благодарностью!спасибо!

1 Ответ

0 голосов
/ 08 февраля 2012

В качестве быстрого исправления я просто вычел один из последних разделов IP.

ip_oct = ip.split('.')
ip_oct[3] = str(int(ip_oct[3]) -1)
return '.'.join(ip_oct)

Я уверен, что это не самое элегантное решение, но это существенно уменьшило числовые линии и упростило imo

Я в основном разделяю получаемый IP.затем с последним набором вычесть один.Затем я присоединяюсь к ним.чтобы вернуться к IP.

Просто чтобы бросить его туда, мне не повезло, используя gethostbyname_ex для работы через Google Robot Framework, поэтому мне пришлось использовать getaddrinfo для получения IP.

Опять же, не самое оптимальное решение, так как я хотел бы сделать это через MAC-адреса и ARP, но ... У меня не было времени разобраться и я вернусь к нему через несколько месяцев

...