2016-05-19 13 views
0

昨日インタビューで、動作しているOSとは無関係のシステムのIPアドレスを返すgetIPAdrress()を実装する質問をしました。複数のOSに対してスケーラブルなgetIPaddress()を実装する

osサブプロセスモジュールを使用して書きましたが、まずos名を確認し、それに基づいてサブプロセスを使用してコマンド(ipconfig \ ifconfig)を起動し、そこからIPアドレスを見つけて返します。

私はこのアプローチが良いとは言えませんでした知っています。私はさらに、同じことをするための私の選択のいくつかのデザインパターンを求められました。基本的にOSが何であっても動くことができました。私の機能はWindowsとLinuxの両方で動作するようです。

この投稿で私はそれを行うより良い方法があるかどうかを学びたい。

おかげで、 学習忍者ここ

+1

可能なソリューション、およびいくつかの他のコメント:http://stackoverflow.com/questions/166506/finding-local-ip-addresses-using-pythons-stdlib私にはデザインパターンとは何の関係もありません。 .. –

+0

サードパーティライブラリを使用することはできますか?私はdnsを使ってこのようなものを実装しました - www.dnspython.org –

答えて

0

は外部に面しIPクロスプラットフォームを取得するための興味深い方法です。

import urllib 

url = "http://checkip.amazonaws.com/" 
response = urllib.urlopen(url).read().rstrip() 
print response 
+0

この方法でインターネットに接続する必要があります。 – LearningNinja

+0

@LearningNinjaあなたが外部IPを探しているなら、あなたは上記のアドレスに到達することができます。追加の制限/要件がある場合は、それらをあなたの質問に含めてください。さらに私たちがあなたの私的または公的な拠点を取得しようとしていると言及したことはありません。 –

関連する問題