PHPでoutboundのIP指定とタイムアウト

早速、昨日今日でやったことのメモ

一つのサーバでIP Alias等で複数のIPアドレスを持っている場合、任意のIPアドレスを使用して、外に出て行く方法。

//使用するIPアドレス
$ip_addr = array(“192.168.10.10”, “192.168.10.11”);

//ソケットの生成
$sock = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );

//タイムアウト5秒
$sec = Array(“sec” => 5, “usec” => 0);
socket_set_option($sock, SOL_SOCKET, SO_SNDTIMEO, $sec);
socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, $sec);

//outboundのIPを指定する
socket_bind($sock, $ip_addr[0]);

あとは通常通りにsocket_writeとかすれば大丈夫。
エラーハンドリングはsocket_last_error();を使うといいっぽい。
サンプルコード引っ張ってきてやっつけだけどこんな感じに実装。

$socket_error = socket_last_error();
if($socket_error) {
print socket_strerror($socket_error) . “:” . $to . “\n”;
}

コメントを残す

メールアドレスが公開されることはありません。


*