PHP如何发送原始HTTP数据包

Ozz*_*zzy 6 php sockets http packet

我想将一个原始的HTTP数据包发送到网络服务器并收到它的响应,但我无法找到一种方法来做到这一点.我不熟悉套接字和我找到的每个链接使用套接字发送udp数据包.任何帮助都会很棒.

Gum*_*mbo 7

fsockopen手册页看一下这个简单的例子:

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>
Run Code Online (Sandbox Code Playgroud)

建立与服务器的连接fsockpen.$out保存随后发送的HTTP请求frwite.然后使用读取HTTP响应fgets.