2011-11-07 10 views
17

私はコードで接続するためにipを指定している間に動作する小さな片面メッセージ送信者を持っていますが、ソケットから任意のIPからの接続を受け入れることができないという問題があります。ここに問題のラインがあります。PythonソケットはどのIPにもバインドできますか?

mySocket = socket.socket (socket.AF_INET, socket.SOCK_STREAM) 
mySocket.bind (('', 2727)) 

「」localhostのためである、と私は手動でIPを入力した場合、それは動作しますが、例えば192.168.1.106は、しかし、どのように私はすべてに開いて、それを残すことができますか?私は間違った接続タイプを使用していますか?

答えて

28

使用可能なすべてのIPv4アドレスにバインドする場合は、IPアドレスとして0.0.0.0を指定します。ルータの背後にあり、あなたのLAN上で利用可能ではなくインターネットにアクセスできるようにするには、LAN外のユーザがサービスにアクセスできるようにポート転送ルールを設定する必要があります。

0.0.0.0詳細は、次のServerFaultの質問を参照してください:https://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1

+0

ありがとうございました! – Trent

+0

非常にクリアなガイド! –

+0

152.64.87.9のような完全カスタムのipsにバインドすることはできますか? – CMCDragonkai

4

0.0.0.0に結合すると、それはそれへのルートができ任意のIPv4アドレスからの接続を受け入れることができます。

9

へのバインド''へのバインドは、'0.0.0.0'と同じ効果があり、IPv6への移行が容易になります。

OSによっては、開かれたsocket.AF_INET6ソケットがIPv4とIPv6をリッスンします。

関連する問題