PHP将stream_socket_client转换为CURL

时间:2017-04-16 08:25:05

标签: php function sockets curl stream

我有一个PHP函数来通过代理获取域的WHOIS。

stream_socket_client 功能正常工作:

$proxy_ip = "XXX.XXX.XXX.XXX";
$proxy_port = "XXXX";
$fp = @stream_socket_client("tcp://$proxy_ip:$proxy_port");
$tcp_request = "CONNECT whois.verisign-grs.com:43 HTTP/1.1\r\n";
$tcp_request .= "Host: $proxy_ip\r\n";
$tcp_request .= "Proxy-Connection: keep-alive\r\n\r\n";
$send_request = fwrite($fp, $tcp_request);
usleep(1);
stream_set_blocking($fp, true);
$tcp_request = "domain google.com\r\n";
$send_request = fwrite($fp, $tcp_request);
$whois = stream_get_contents($fp);
@stream_socket_shutdown($fp, STREAM_SHUT_RDWR);
echo $whois;

但是当我将此函数转换为 CURL 时,结果始终为空:

$proxy_ip = "XXX.XXX.XXX.XXX";
$proxy_port = "XXXX";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "whois.verisign-grs.com:43");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, "$proxy_ip:$proxy_port");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "domain google.com\r\n");
$whois = curl_exec($ch);
curl_close($ch);
echo $whois;

任何人都可以帮我正确地将 stream_socket_client 函数转换为 CURL 函数。

0 个答案:

没有答案