プログラムから外部IPを見つける方法





ネットワーク、特にp2pシステムを操作するためのさまざまなプログラムを作成する場合、プログラムからコンピューターの外部IP(ビッグインターネットからコンピューターにアクセスできるアドレス)を見つける必要がある場合があります。 多くの場合、簡単な方法で外部Webサービスを使用する誘惑があります。httpを介してIPを返すか、自分で展開します。 この問題を解決する方法は実行可能ですが、それでも多くの欠点があります。









上記に基づいて、サイトの所有者の自発性に依存せず、一般的にリソースを効率的に使用するために、外部IPを取得するための軽量で標準化されたプロトコルが必要であることが明らかになります。







WWW生成は非常に驚くでしょうが、そのようなプロトコルは長い間存在し、標準化されており、IPテレフォニー、および他のマルチメディアサービスのいくつかの場所で広く使用されています。 プロトコルはSTUNと呼ばれ、 rfc5389で指定されています







これはUDPに基づく軽量プロトコルであり、使用する場合、STUNを介して外部IPを取得するためにTCP接続などを確立する必要はありません。 これはwwwと比較して、コンピューティングリソースの負荷を軽減し、アドレスを決定する時間を短縮します。 それぞれ約50バイトの2つのパケットのみ-アドレスは既知です。







実際、STUNを使用すると、外部IPを特定できるだけでなく、現在のNATバリアの動作を調査することもできます。これは、複数の連続したNATデバイスで構成される場合があります。 しかし、STUNの高度な機能は、IPアドレスの取得に関するこの記事の範囲を超えているため、主なことに集中しましょう。







したがって、簡単で標準的なプロトコルがあることがわかります。 ここで、プログラムがリクエストを送信するSTUNサーバーが必要です。 幸いなことに、そのようなサーバーがあり、すべての自尊心のあるVOIP会社が1つを所有しています。 このようなサーバーは数百台ありますが、これは同様の目的のパブリックWebサーバーよりもはるかに多くなっています。 そしてすべてが標準であり、それぞれが答えを解読する際に「特別なアプローチ」を持つ必要はありません。 以下は、私たちに知られている公開STUNサーバーのリストです。







プロトコルとサーバーを決定したので、プログラムに簡単に統合できるSTUNクライアントをどこかで見つけることが残っています。 ここでは、 Emercoinプロジェクトからstun.cppファイルを取得することをお勧めします。 このファイルには、STUNを介して外部IPを決定するための完全なサブシステムが含まれています。 幸いなことに、このプロジェクトはオープンソースであり、GPLの下でライセンスされています。







このファイルにはGetExternalIPbySTUN()関数が含まれています。この関数は、定義済みのSTUNサーバーのリストを、それらのいずれかから応答を受信するまでループで擬似ランダムにポーリングします。 したがって、一部のサーバーで障害が発生すると、サブシステムの速度が低下しますが、サービス拒否は発生しません。 また、リストには200を超えるサーバーが含まれているため、すべてのサーバーが同時に障害を起こす可能性は無視できるようです。







リストをクロールする擬似ランダムな順序により、すべてのクライアントの速度が同時に低下する一部のサーバーの障害に対して、このような構成がないことが保証されます。 さらに、このアルゴリズムは複数のサーバーにリクエストを分散するため、専用サーバーの過負荷が解消されます。 つまり、負荷はサーバープール全体に均等に分散されます。







リクエストごとにランダムIDを生成することで、リクエストを匿名化する手段も講じられています。 サーバーの分散と組み合わせて、サーバーの所有者がp2pネットワークを「計算」することはほとんど不可能になります。 受信するリクエストは0.5%未満であり、リクエストをIPテレフォニー機器からのリクエストと明確に区​​別することはできません。







以下は、私たちに知られている形式のパブリックSTUNサーバーのリストです。







サーバー:ポート
 iphone-stun.strato-iphone.dehaps478
 numb.viagenie.cahaps478
 sip1.lakedestiny.cordiaip.comhaps478
 stun.12connect.com {478
 stun.12voip.com {478
 stun.1cbit.rureg478
 stun.1und1.dehaps478
 stun.2talk.co.nzhaps478
 stun.2talk.comhaps478
 stun.3clogic.com {478
 stun.3cx.com {478
 stun.726.comhaps478
 stun.a-mm.tv {478
 stun.aa.net.ukhaps478
 stun.aceweb.com {478
 stun.acrobits.czhaps478
 stun.acronis.com opin478
 stun.actionvoip.com {478
 stun.advfn.com {478
 stun.aeta-audio.com {478
 stun.aeta.com {478
 stun.allflac.com opin478
 stun.anlx.net liver478
 stun.antisip.com {478
 stun.avigora.comhaps478
 stun.avigora.frreg478
 stun.b2b2c.cahaps478
 stun.bahnhof.net REG478
 stun.barracuda.com {478
 stun.bcs2005.netverse478
 stun.beam.proreg478
 stun.bitburger.dehaps478
 stun.bluesip.netpany4747
 stun.bomgar.com {478
 stun.botonakis.com ∗ 478
 stun.budgetphone.nl {478
 stun.budgetsip.com {478
 stun.cablenet-as.nethaps478
 stun.callromania.rohaps478
 stun.callwithus.comhaps478
 stun.cheapvoip.com {478
 stun.cloopen.com {478
 stun.cognitoys.com {478
 stun.comfi.com {478
 stun.commpeak.com {478
 stun.communigate.com {478
 stun.comrex.com {478
 stun.comtube.comhaps478
 stun.comtube.rureg478
 stun.connecteddata.com {478
 stun.cope.eshaps478
 stun.counterpath.com {478
 stun.counterpath.nethaps478
 stun.crimeastar.net {478
 stun.dcalling.dehaps478
 stun.demos.rureg478
 stun.demos.su {478
 stun.dls.net ∗ 478
 stun.dokom.net opin478
 stun.dowlatow.rureg478
 stun.duocom.eshaps478
 stun.dus.net
 stun.e-fon.chhaps478
 stun.easemob.com {478
 stun.easycall.plreg478
 stun.easyvoip.com {478
 stun.eibach.dehaps478
 stun.ekiga.net ∗ 478
 stun.ekir.dehaps478
 stun.elitetele.com {478
 stun.emu.ee {478
 stun.engineeredarts.co.ukhaps478
 stun.eoni.com {478
 stun.epygi.com {478
 stun.faktortel.com.auhaps478
 stun.fbsbx.com {478
 stun.fh-stralsund.dehaps478
 stun.fmbaros.rureg478
 stun.fmo.dehaps478
 stun.freecall.com {478
 stun.freeswitch.org {478
 stun.freevoipdeal.com {478
 stun.genymotion.com {478
 stun.gmx.dehaps478
 stun.gmx.net {478
 stun.gnunet.org {478
 stun.gradwell.com {478
 stun.halonet.plhaps478
 stun.highfidelity.iohaps478
 stun.hoiio.comhaps478
 stun.hosteurope.dehaps478
 stun.i-stroy.rureg478
 stun.ideasip.com {478
 stun.imweb.iohaps478
 stun.infra.net ∗ 478
 stun.innovaphone.comhaps478
 stun.instantteleseminar.comhaps478
 stun.internetcalls.comhaps478
 stun.intervoip.com {478
 stun.ipcomms.net {478
 stun.ipfire.org opin478
 stun.ippi.com {478
 stun.ippi.frreg478
 stun.it1.hrrouble478
 stun.ivao.aerorouble478
 stun.jabbim.czhaps478
 stun.jumblo.comhaps478
 stun.justvoip.com {478
 stun.kaospilot.dk {478
 stun.kaseya.com {478
 stun.kaznpu.kzhaps478
 stun.kiwilink.co.nzause478
 stun.kuaibo.com {478
 stun.l.google.com:19302
 stun.lamobo.orghaps478
 stun.levigo.dehaps478
 stun.lindab.com {478
 stun.linphone.org opin478
 stun.linx.net {478
 stun.liveo.frreg478
 stun.lowratevoip.com {478
 stun.lundimatin.fr {478
 stun.maestroconference.com {478
 stun.mangotele.com {478
 stun.mgn.ru {478
 stun.mit.dehaps478
 stun.miwifi.com ∗ 478
 stun.mixer.com ∗ 478
 stun.modulus.grreg478
 stun.mrmondialisation.org opin478
 stun.myfreecams.comhaps478
 stun.myvoiptraffic.com {478
 stun.mywatson.ithaps478
 stun.nacsworld.com {478
 stun.nas.net {478
 stun.nautile.nchaps478
 stun.netappel.com {478
 stun.nextcloud.com {478
 stun.nfon.net opin478
 stun.ngine.dehaps478
 stun.noblogs.orghaps478
 stun.node4.co.ukhaps478
 stun.nonoh.netreg478
 stun.nottingham.ac.ukhaps478
 stun.nova.ishaps478
 stun.onesuite.com opin478
 stun.onthenet.com.auhaps478
 stun.ooma.com {478
 stun.oovoo.com {478
 stun.ozekiphone.comhaps478
 stun.personal-voip.dehaps478
 stun.petcube.com {478
 stun.pexip.com {478
 stun.phone.com opin478
 stun.pidgin.imhaps478
 stun.pjsip.org {478
 stun.planete.net ∗ 478
 stun.poivy.com {478
 stun.powervoip.com {478
 stun.ppdi.comhaps478
 stun.rackco.comreg478
 stun.redworks.nl {478
 stun.ringostat.com {478
 stun.rmf.plrouble478
 stun.rockenstein.dehaps478
 stun.rolmail.net ∗ 478
 stun.rudtp.ru ∗ 478
 stun.russian-club.net ∗ 478
 stun.rynga.com {478
 stun.sainf.ru ∗ 478
 stun.schlund.dehaps478
 stun.sigmavoip.com {478
 stun.sip.ushaps478
 stun.sipdiscount.com {478
 stun.sipgate.net:10000
 stun.sipgate.netreg478
 stun.siplogin.dehaps478
 stun.sipnet.net {478
 stun.sipnet.rureg478
 stun.siportal.itrouble478
 stun.sippeer.dkhaps478
 stun.siptraffic.com {478
 stun.sma.dehaps478
 stun.smartvoip.com {478
 stun.smsdiscount.com {478
 stun.snafu.dehaps478
 stun.solcon.nl {478
 stun.solnet.chhaps478
 stun.sonetel.com {478
 stun.sonetel.net {478
 stun.sovtest.rureg478
 stun.speedy.com.arhaps478
 stun.spoiltheprincess.com {478
 stun.srce.hrreg478
 stun.ssl7.net {478
 stun.stunprotocol.org {478
 stun.swissquote.com {478
 stun.t-online.dehaps478
 stun.talks.byhaps478
 stun.tel.lu {478
 stun.telbo.comhaps478
 stun.telefacil.com {478
 stun.threema.chhaps478
 stun.tng.dehaps478
 stun.trueconf.ru {478
 stun.twt.itrouble478
 stun.ucsb.edu {478
 stun.ucw.czhaps478
 stun.uiscom.rureg478
 stun.uls.co.zahaps478
 stun.unseen.isreg478
 stun.up.edu.phhaps478
 stun.usfamily.net opin478
 stun.uucall.comhaps478
 stun.veoh.com ∗ 478
 stun.vipgroup.net REG478
 stun.viva.grreg478
 stun.vivox.com ∗ 478
 stun.vline.com ∗ 478
 stun.vmi.sehaps478
 stun.vo.lu {478
 stun.vodafone.rohaps478
 stun.voicetrading.com {478
 stun.voip.aebc.comhaps478
 stun.voip.blackberry.com {478
 stun.voip.eutelia.ithaps478
 stun.voiparound.com {478
 stun.voipblast.com {478
 stun.voipbuster.com {478
 stun.voipbusterpro.com {478
 stun.voipcheap.co.ukhaps478
 stun.voipcheap.com {478
 stun.voipdiscount.com {478
 stun.voipfibre.com {478
 stun.voipgain.com {478
 stun.voipgate.com {478
 stun.voipinfocenter.com {478
 stun.voipplanet.nl {478
 stun.voippro.com {478
 stun.voipraider.com {478
 stun.voipstunt.com {478
 stun.voipwise.com {478
 stun.voipzoom.com {478
 stun.voxgratia.org opin478
 stun.voxox.com {478
 stun.voztele.com {478
 stun.wcoil.com {478
 stun.webcalldirect.com {478
 stun.whc.nethaps478
 stun.whoi.edu {478
 stun.wifirst.netpany4747
 stun.wtfismyip.com {478
 stun.wwdl.nethaps478
 stun.xn ---- 8sbcoa5btidn9i.xn-p1ai:3478
 stun.xten.com ∗ 478
 stun.xtratelecom.eshaps478
 stun.yy.com {478
 stun.zadarma.com {478
 stun.zepter.rureg478
 stun.zoiper.com opin478
 stun1.faktortel.com.auhaps478
 stun2.faktortel.com.auhaps478
 stun1.l.google.com:19302
 stun2.l.google.com:19302
 stun3.l.google.com:19302
 stun4.l.google.com:19302



All Articles