質問: Python2.7で自分のIPアドレス以外の人と通信するには。 同じPC内でターミナルを2つ起動し、サーバー&クライアントと通信するのは問題ないのですが、 これを沖縄に住んでいるAさん、と東京に住んでいるBさん この場合Aさんをサーバー,Bさんをクライアントとして通信するにはどういうスプリクトが必要ですか? これまではlocalhost内だったので問題ありませんでしたが、 これが違うIP同士になると、どういうふうに書けばいいの教えて下さい。
回答: takasima20 さん、tkanda さんが書かれているとおり、Python のスクリプトでどうこうできるのは IP アドレスを指定して TCP and/or UDP で通信できる環境が整っていることが前提です。A さん、B さんが個人の場合、PC A (A さんの PC) と PC B (B さんの PC) はほとんど間違いなく、インターネットに接続したそれぞれの LAN 内 (LAN A、LAN B、命名方法は他と同じで) に所属しています。LAN A 内の PC (など) はそれぞれ IP アドレスで通信できますし、NAT などの方法で、LAN A からインターネット上にグローバル IP アドレスを持つサーバとの通信も可能です (LAN B も同様)。LAN A からインターネット上のサーバとの通信に必要なアドレス変換などの作業 (NAT だったり DMZ 機能だったりポート転送だったり) は、LAN とインターネットをつなぐルータで行っています (LAN とプロバイダのネットワークの間にいわゆるホームルーターが挟まっていて、そこから先もいくつかネットワーク機器を通過してインターネットとつながっているかもしれません)。 で、LAN A と LAN B は、そのままでは互いに通信できません。何らかの方法で通信できるようにする必要があります。方針としては二つあろうかと思います。一つは、サーバとなる PC である PC A にグローバル IP アドレスで通信できるようにし、PC B からそのグローバル IP アドレスにアクセスするというものです。もう一つは、LAN A と LAN B を VPN でつなぐことです。後者は、ざっくり言えば、インターネット上に、暗号化された通信路を設け、LAN A と LAN B を同じ LAN 内にあるものとできる仕組みです。 LAN A と LAN B がどれくらい頻繁に通信するのか、通信速度はどれくらい必要か、費用はどれくらいかけられるのか、などによって、どちらの方式にするか、さらには具体的にどういう機器やソフトを導入するのか、が違ってきます。Lehm_c さんの質問の感じからは、まずは SoftEather VPN で VPN を構築するのがよっかな、と思いました。