生のhttpパケットをウェブサーバに送信し、その応答を受信したいが、それを行う方法が見つからない。私はソケットとinexperiancedと私が見つけたすべてのリンクはUDPパケットを送信するソケットを使用しています。どんな助けも素晴らしいだろう。PHP Raw HTTPパケットを送信する方法
答えて
fsockopen
manual pageからこの単純な例を見てみましょう:サーバーへの接続がfsockpen
で確立され
<?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);
}
?>
を。 $out
は、frwite
で送信されるHTTPリクエストを保持します。 HTTP応答はfgets
で読み取られます。あなたが持っている(以上、単純な、使用カールを取得するために
<?php
$html = file_get_contents('http://google.com');
?>
<?php
$fh = fopen('http://google.com', 'r');
while (!feof($fh)) {
$html .= fread($fh);
}
fclose($fh);
?>
:あなたがしたいすべてがGETリクエストを実行し、レスポンスのボディを受け取っている場合
それは私が必要としていたものです。私はパケットのスプーフィングthoへの私のアプローチを再考する必要があると思う:S – Ozzy
は、ファイルの機能のほとんどが使用してURLをサポートphpにコンパイルする)。カールすると、POSTやHEAD要求を行うことができます。また、さまざまなヘッダーを設定することもできます。
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://google.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
?>
それはラッパーの実装と呼ばれる... Ozzy *生* httpのためにしかし、それを言っている... HTTPについて生の何もありません...どのような立場から見ているかによって異なります! –
クライアント側HTTPを実装するよりも簡単です。いくつかのオプションを設定し、残りの部分をcURLで処理するだけです。
$curl = curl_init($URL);
curl_setopt_array($curl,
array(
CURLOPT_USERAGENT => 'Mozilla/5.0 (PLAYSTATION 3; 2.00)',
CURLOPT_HTTPAUTH => CURLAUTH_ANY,
CURLOPT_USERPWD => 'User:Password',
CURLOPT_RETURNTRANSFER => True,
CURLOPT_FOLLOWLOCATION => True
// set CURLOPT_HEADER to True if you want headers in the result.
)
);
$result = curl_exec($curl);
あなたは、カールがサポートされていないヘッダーを設定CURLOPT_HTTPHEADERオプションを使用して、追加のヘッダの配列を渡す必要がある場合。ヘッダーを解析する必要がある場合は、CURLOPT_HEADERFUNCTIONをコールバックに設定します。他のオプションについては、curl_setopt
のドキュメントをご覧ください。
- 1. pingパケットの送信方法
- 2. パケット送信/受信の処理方法
- 3. LinuxのRAWソケット経由でパケットを再送信
- 4. SoapServer、NuSoap、またはZEND_SOAP_SERVERでRAW Soapを送信する方法
- 5. パケットをネットワークカードに送信する前にパケットを変更する方法
- 6. パケット再送信
- 7. C#でRaw IPパケットを送信しました。イーサネットレイヤー上のものすべて
- 8. 連続してudpパケットを送信する方法GCDAsyncUdpSocket
- 9. SharpPcapでHTTPパケットをキャプチャする方法
- 10. TCPパケット送信エラー
- 11. C#でraw TCPパケットを取得する方法は?
- 12. Java/Android:到着時にパケットを受信している間にパケットを送信する方法
- 13. .NETでUDPパケットを送受信する
- 14. C#でパケットを送信するには?
- 15. KryoNet - Androidクライアントにパケットを送信する
- 16. HTTP認証資格を非.NET WebServiceに送信する方法
- 17. Zend_Soap_Clientを使用してraw xmlをSOAPサーバーに送信する方法は?
- 18. rawソケットとWinPcapを使用してHTTPリクエストを送信します
- 19. Rawフォルダからmp3/mp4ファイルをAndroid上のサーバーに送信する方法は?
- 20. ファイアウォール-Iptables-Linux:すべての送信パケットに同じ送信元ポートを強制する方法
- 21. カーネルモジュールを介してパケットを送信する
- 22. IPパケットを送信しています
- 23. ウェブサーバーにパケットを送信しますか?
- 24. NSOutputStreamでパケットをすぐに送信またはフラッシュする方法
- 25. WinPcapを使用してC#経由でARPパケットを送信する方法
- 26. NameValuePairを使用してバイトHTTPを送信する方法
- 27. TCP Javaでリアルタイムの大きなパケットを送受信する方法は?
- 28. Pythonで書かれたMinecraft Classicサーバーでパケットを送信する方法
- 29. HTTPサーバーからクライアントにイメージを送信する方法は?
- 30. iOSでHTTPフォーム(POST)を送信する方法
@Ozzy:note - HTTPはUDP(パケット)ではなくTCP(ストリーム)を使用します。 –
aa私はthxを参照してください:) – Ozzy
なぜHTTPを実装しますか?まともなチャンスがあります。あなたが望むことをcURLが行うので、あなたは車輪を再構築する必要はありません。 – outis