2016-12-21 4 views
0

no-ipのDNS名を使用してソケット経由で接続するにはどうすればよいですか?またはno-ip DNS名からIPを取得する方法はありますか?no-ipを使用したPHPソケット

$cnt = socket_connect($socket,"100.100.100.100",$port); 

作業が、IPは動的です。

$cnt = socket_connect($socket, "blablabla.ddns.net",$port); 

I'veがにgethostbynameを試してみました()が、それはすべてノーIP名に同じIPを返します は、私のようなものが必要。

答えて

0

この解決方法はサーバーによって異なりますが、ネイティブオペレーティングシステムの機能に置き換えることもできます。例えば、ほとんどのLinuxを使用すると、次のようなコマンドを実行できるように、glibcを持ってインストールします。

getent hosts blahblabla.ddns.net | awk '{print $1}' 

さて、exec()system()のようなPHPの関数は、このようなものを実行するために使用することができます。例えば

:次に

$command = 'getent hosts google.com | awk \'{print $1 ; exit}\''; 
$ip = exec($command); 

あなたのソケットに接続するためにIPを使用しています。

注:あなたが悪い時を望んでいない限り、ユーザが入力した内容をこの部分に渡さないでください。

参照:https://unix.stackexchange.com/questions/20784/how-can-i-resolve-a-hostname-to-an-ip-address-in-a-bash-script

+0

こんにちはジェレミーそれは私が上記の言ったメソッドのgethostbyname()のように、同じIPまったく-IPのDNS名を返すため、それは動作しません。 –

+0

通常のDNS検索を行うgethostbyname()のlinuxの亜種があるはずです。あなたのWebブラウザと違いはありません。多分「掘る」? –

+0

@JeremyHarris 'nslookup'? – Vovanrock2002

関連する問題