2010-12-05 21 views
0

whatismyip.comはどのようなIPアドレスを提供していますか?VB.Netコードを使用したIPアドレス

どのようにVB.Netコードを使用して取得できますか?

また、IPポートとは何ですか?私のIPはあなたのIP v4のパブリックアドレスを提供して何

おかげ

Furqan

答えて

1

PART 1

さて、あなたはあなたの家のルータを持っていて、すべてのルータを介してインターネットに接続されているあなたの家にいくつものコンピュータを持っていることのふりましょう。

ルータはトラフィックがネットワーク上でどこに伝わるかを知るために、ホームネットワーク上のすべてのコンピュータ(通常は192.168.x.xで始まる)に一意のIPアドレスを割り当てます。これらのIPアドレスはローカルのIPアドレスであり、家庭内に接続されているルータとコンピュータ/デバイスだけがそのIPアドレスを知っていることを意味します。コマンドプロンプトを開いてIPConfigコマンドを実行すると、ルータがコンピュータに割り当てたIPアドレスが表示されます。

WhatIsMyIP.comがあなたを示すIPアドレスは何ですか?ルータがネットワーク上のすべてのコンピュータにアドレスを割り当てるのと同じように、インターネットサービスプロバイダはすべての顧客に一意のIPアドレスを渡します。さて、あなたはルータを持っているので、ISPがあなたのネットワーク上で見ることができる唯一のものはルータであり、あなたのISPはそれにIPアドレスを割り当てます。このため、ルーターはハードウェアファイアウォールとも呼ばれます。なぜなら、その反対側の人は、接続されているコンピュータやデバイスの数を知ることができないからです。

インターネット上のWebサイトにアクセスしているときに表示される唯一のIPアドレスは、ルータの外部IPアドレス(ISPによって割り当てられたもの)です。あなたの家のどのコンピュータを使用していても、Webサイトは違いを知ることができません。なぜなら、見ることができるのはルータのIPアドレスだからです。それを試してみてください。自宅の複数の異なるコンピュータのwww.WhatIsMyIP.comにアクセスしてください。それらのIPアドレスがすべて同じIPアドレスであることがわかります。ただし、各コンピュータのコマンドプロンプトでIPConfigを実行すると、ルータに割り当てられたローカルアドレスが表示され、家のすべてのコンピュータで異なることになります。

ローカルIPアドレスと外部IPアドレスの違いを理解したので、PCで動作しているVBまたはC#.netコードで外部IPアドレスを取得するにはどうすればよいですか?あなたのコンピュータが実際に認識している唯一のIPアドレスは、私たちが話したローカルIPです。あなたの外部IPアドレスを見ることができる唯一の方法は、リクエストの発信元アドレス(ルータのIPアドレス)を知らせるWebサイトにアクセスすることです。

WhatIsMyIP.com(またはあなたのIPアドレスを与えることができる他のウェブサイト)に移動するVB.netプログラムにいくつかのコードを書き、それを取得するようにコードに指示する必要があります。私はhttp://www.u413.com/test/terminal/myipにあるウェブサービスを書いて、あなたのIPアドレスだけをHTTPレスポンスとして返します。この小さなサンプルは永遠にそこにとどまることはないので、あなたのアプリケーションに類似したものを見つけてください。私は、すでに所有しているドメイン上に一時的な例としてそこに置くだけです。

http://www.vbdotnetheaven.com/UploadFile/kbawala/WebRequestClass04182005054320AM/WebRequestClass.aspxにアクセスして、コンピュータで実行されているコードからWebリクエストを作成する方法を確認してください。

注:IPアドレスの仕組みに気づいていない場合、DNSが何であるか分からないことがあります。ネット上のすべてには、Webサイトのページを提供するサーバーを含むIPアドレスがあります。しかし、あなたのお気に入りのウェブサイトすべてで12桁のIPアドレスを覚えようとすると、どんな痛みがありますか?これが、DNSサーバーが発明された理由です。 DNSサーバはドメイン名(例えば、www.facebook.com)を取り、正しいIPアドレスに変換する。あなたが覚えておく必要があるのは、69.63.181.12の代わりにfacbook.comです(これはFacebookのIPアドレスです。先に試してください!そのIPをブラウザのアドレスバーに入れてください)、ドメイン名ははるかに簡単です覚えておいて!

Webサイトに関連付けられているIPアドレスを確認するには、コマンドプロンプトを開きます。プロンプトが開いたらPING [websitedomain](PING Facebook.comなど)と入力すると、表示されたアドレスに4つのテストリクエストが送信されます。

PART 2

はのは、あなたのIPアドレスは、アパートのbulidingのアドレスのようなものであるふりをしてみましょう。ピザを配達する少年は、あなたのピザを配達するためにアパートの住所を知る必要があります。しかし、彼がそこに着くときに何をするつもりですか?選ぶべき何百ものドア/アパートがあります。彼はアパート番号(あなたのコンピュータ上のポート番号)を知る必要があります。

お使いのコンピュータには何千ものポートがあり、プログラムは外部からの要求に対して、そのいずれか1つでリッスンすることができます。ウェブサイトにアクセスすると、ほとんどすべてのウェブサイトがポート80で提供されます。ポート80はWebページのデフォルトポートです。 facebook.comに行くと実際facebook.com:80に行きますが、それはデフォルトであるため暗示されているため80:は表示されません。私がウェブサーバを設置すると、ウェブサイトを提供するポートを決めることができます。ポート80以外のポートでWebページを提供した場合は、URLにそのページを含める必要があります。 http://www.SomeDudesCustomWebServer.com:1337

発信要求もポートを使用しますが、通常は重要ではなく、コンピュータは利用可能なポートを選択します。だからあなたがFacebook.comに行くと、FacebookのWebサーバーはすべてポート80を介してページを提供していますが、コンピュータが要求を送信するために開いたポートは、使用可能なポートを選択してから80要求のあるポート。その後、facebookが応答を送信すると、要求を行ったIPアドレスとポートに返信を返します。

発信ポートは、要求の間のみ使用されます。接続をリッスンする必要があるポートは同じでなければなりません。そうしないと、要求を送信するコンピュータは要求を送信するポートを認識しません。

簡単!

あなたが少し良く理解するのを助けることを望みます。

EDIT:

ポートフォワーディング

さて、チャットアプリケーションの光の中であなたはそれがネット上で通信したい場合は、ポートについて学ぶ必要があるでしょう、作成/使用します転送。基本的には、あなたの友人のネットワークのすべてが自分の外部IPアドレスであるため、そのアドレスをチャットサーバーに接続する必要があります(チャットサーバーに接続している場合は外部IPになります)。 )。このため、接続要求は外部IPを持つルータまでしか届きませんが、ネットワーク上のどのコンピュータが要求を転送するかはわかりません。

ルータのファームウェアにアクセスし、特定のポートで要求をネットワーク上の特定のコンピュータに転送することをルータが認識するように、ポート転送を設定する必要があります。ポート転送を設定する方法の詳細については、http://portforward.com/を参照してください。

EDIT 2:

ファイアウォール

お使いのPCを使用して、コンピュータと通信するためのものを設定する場合、あなたはそれだけで接続しないことを不満を取得を開始します。何があなたのファイアウォールを停止する可能性が高いです。デフォルトでは、PCのほとんどのポートはWindowsファイアウォールによって完全にブロックされています。通信するポートごとに、ファイアウォールに入り、ポートを開くルールを作成します。ここをクリックしてWindowsファイアウォールの使用方法に関するビデオをhttp://www.top-windows-tutorials.com/windows-7-firewall.htmlに送ってください。私はそれを見ていないが、それはGoogle検索で最初に来たものです。

単にファイアウォールを無効にしないでください。これはあなたのすべてのポートを開くための簡単で迅速なソリューションですが、あなた自身を攻撃に開放しています。ウイルスは自分のコンピュータに自分自身を置くことができ、愛するクリエイターからの接続のためにオープンポートで聴いて、あなたのPCへのアクセスを得ることができます。必要なポートだけを開きます。

TCP

対UDPポートを開き、転送、あなたはそれがUDP(User Datagram Protocol)やTCP(伝送制御プロトコル)を要求することがあります。彼らが何を表しているかは理解できないかもしれませんが、あなたが知る必要があるのはこれだけです:UDPは単一のパケット転送用です.PCによって送信された2つのパケットは互いに関連しているかもしれません。これらのタイプのデータパケットは、通常、ローカルネットワーク上のブロードキャストに使用されます。私が使用する例はLANゲームです。 LAN上でゲームをホストすると、他のコンピュータ/デバイスはゲームの名前を見て参加することができます。これは、ゲームをホストしているコンピュータがLAN全体にUDPブロードキャストを送信しているため、どのデバイスでもゲームを見ることができるからです。これらのUDP送信には通常、ゲームの名前とゲームに接続するために必要な接続情報が含まれています。

TCPは、連続パケット伝送用です。 TCPは確立された接続を必要とし、この接続で送信されるパケットは常にその1つの接続/要求に関連します。最後の段落の例を続行するには、LANゲームで接続をクリックすると、コンピュータはホストとのTCP接続を確立し、ゲームまたはゲームの間その接続を使用します。 TCPは最も一般的に使用される接続タイプで、チャットプログラムはTCP経由で通信する可能性があります。特に、UDPブロードキャストがインターネット上で役に立たないためネットに接続している場合。 UDPはLAN上で本当に便利です。

TCPポートだけを安全に転送し、ブロックを解除する必要がありますが、わからないときはUDPとTCPの両方を行うだけで安全です。実際、多くのルーターやファイアウォールには3つのオプションがあります:TCP、UDP、または両方。これにより、両方のタイプのポートに対して2つのルールを作成する必要がなくなります。

疑いがある場合は、両方を開いてください。

+0

+1いい回答です! –

+0

ありがとうございました。これは本当に素晴らしいです。 –

+0

こんにちは、 ありがとうございました。私の目的は、LAN経由で通信できるシンプルなチャットアプリケーションを操作することです。 vb.netにn個のアプリケーションコードをダウンロードしました。対象のコンピュータのIPアドレスが必要です。 質問しているIPアドレスの種類はわかりません。 Age of Empiresなどのネットワークゲームをプレイするときは、IPアドレスを使用して接続します。それはどのようなIPアドレスですか? ありがとう Furqan –

1

これは本当に検索が簡単です。このトピックでは、進める方法を説明しています。How to get the IP address of the server on which my C# application is running on? コードはほんの数行であるため、言語(この例ではc#)は問題になりません。

+0

明確にする:パブリックIPアドレスを提供するのはezgarの答えです。他はプライベート/内部/ LAN IPアドレスを提供します。 – PleaseStand

1

これらは、インターネットに直面している外部のインターネットを提供します。

このIPは、インターネットへの接続方法によって異なります。ルータやファイアウォールを介さずにコンピュータからISPに直接接続する場合は、内部IPと同じかもしれませんが、ほとんどの場合、そうではありません。 家にいて、何らかの種類のルータ経由で接続している場合は、IPを問い合わせることができるかもしれませんが、標準的な方法はありません。

クライアントから外部IPを取得する標準的な方法はありません。あなたがクライアントPCからそのサーバに接続して、あなたが接続しているIPを尋ねることができるいくつかのコードを展開できるインターネット上のサーバにアクセスできたら、

IP Port Numbers

0

私はまた、コマンドラインを使って外部IPが必要でしたが、私はそれを見つけられなかったので、私はvb.netを使って小さなアプリケーションを書いていました。リフレクションをソースコードに使用したり、home pageアプリで尋ねることができます。基本的にアプリケーションはあなたのIPを提供し、正規表現を使ってそれを解析するWebページを開きますが、この目的で設計されているため、多くの "トリック"を使用します(一度に多くのWebページを使うことができます。詳細はソースを確認してください。

関連する問題