1

タイトル通り、接続しているユニットのDHCPIPを取得したいと思います。

これまでのところ:

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ではないユニットに接続したい場所に2つのユニットを接続しているというものです。

これを書くためのより効率的な方法があればいいと思いますが、私の主な関心事は、代わりにIPのDHCP IPを取得することです(DHCP IPはマイナス1です)

これは大歓迎です!ありがとう!

4

1 に答える 1

0

簡単な修正として、IPの最後のセクションから1を引いたところです。

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

それが最もエレガントな解決策ではないと確信していますが、これにより数直線が大幅に減少し、単純化されたimoになりました

基本的に、取得したIPを分割しています。次に、最後のセットで、1を引きます。次に、それらを。と結合します。IPに戻ります。

ただそれを投げ出すために、私はgethostbyname_exグーグルロボットフレームワークを介して仕事をすることを使用する運がなかったのでgetaddrinfo、IPを取得するために使用しなければなりませんでした。

繰り返しになりますが、MACアドレスとARPを介して実行したいので、最適なソリューションではありませんが...それを理解する時間がなく、数か月以内に戻ってきます。

于 2012-02-08T19:56:52.637 に答える