0

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

働く

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

ただし、IP は動的です。次のようなものが必要です:

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

gethostbyname() を試しましたが、すべての no-ip name に対して同じ IP が返されます。

4

1 に答える 1

0

このソリューションはサーバーによって異なりますが、ネイティブのオペレーティング システム機能にフォールバックできます。たとえば、ほとんどの Linux インストールには がありglibc、次のようなコマンドを実行できます。

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

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

例えば:

$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

于 2016-12-21T19:35:17.713 に答える