2

Python 2.7.2 Windows732ビット

この質問の前に、私はネットワークプログラミングにかなり慣れていません。Pythonの組み込みSocketServerを使用して単純なサーバーとクライアントを作成しました

SocketServer.ThreadingTCPServer((host, port), Handler)

これは、ホストが「localhost」であり、クライアントとサーバーが同じマシン上にある場合に正常に機能します。ただし、インターネット経由でサーバーにアクセスできるようにしたい。私のコンピューターはルーターの後ろにあります。pystun(下記)を使用してコンピューターのパブリックIPアドレスを確認していますが、接続できません。私は少し調査を行いましたが、プログラムがポートを開くと、ルーターがそれを認識し、トラフィックをそのコンピューターに転送することを理解しています。これは起こっていないようです。ファイアウォールを無効にしても同じ結果が得られます。ポートフォワーディングを使用する必要がありますか?ほとんどのアプリケーションは、ルーターの背後からどのように通信できますか?ここでwin32comを介したパンチャー(以下のソース)とポートフォワーディングを調べました。私は正しい方向に私を向けてくれる人を探しています。プログラムでサーバーにルーターの背後からリスニングポートを開いてトラフィックを転送させるにはどうすればよいですか?

パンチャーソース:https ://coherence.beebits.net/svn/trunk/Puncher/puncher/base.py pystun:http ://pypi.python.org/pypi/pystun

4

2 に答える 2

1
lafibre.info/download/upnp/igdctl.pl

私はこのスクリプトを長い間使用してきました。明らかに perl で作成されているため、そのまま使用するか、Python に移植することができます。

FWIW、私はしばらくの間それをPythonに移植するつもりだったので、手が必要な場合は私にpingしてください(githubのrichoH)

于 2012-01-23T01:47:43.477 に答える
0

これ (ポート転送) はルーターで設定する必要があります。ルーターの背後には (おそらく) 複数のデバイスがあるため、ポート 80 (またはその他) に着信するトラフィックをどのデバイスに転送するかを知る必要があります。

于 2012-01-23T01:42:52.017 に答える