Desidero inviare un pacchetto http non elaborato a un server Web e ricevere la sua risposta, ma non posso trovare un modo per farlo. im inesperto con socket e ogni link trovo usi socket per inviare pacchetti udp. Qualsiasi aiuto sarebbe grande.PHP Come inviare pacchetto HTTP raw
risposta
Date un'occhiata a questo semplice esempio dal fsockopen
manual page:
<?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);
}
?>
La connessione al server è stabilito con fsockpen
. $out
contiene la richiesta HTTP che viene quindi inviata con frwite
. La risposta HTTP viene quindi letta con fgets
.
esattamente quello di cui avevo bisogno. Penso di dover ripensare il mio approccio allo spoofing del pacchetto tho: S – Ozzy
Se tutto quello che vogliamo fare è eseguire una richiesta GET e ricevere il corpo della risposta, la maggior parte delle funzioni di file supporta l'utilizzo di URL:
<?php
$html = file_get_contents('http://google.com');
?>
<?php
$fh = fopen('http://google.com', 'r');
while (!feof($fh)) {
$html .= fread($fh);
}
fclose($fh);
?>
Per più di semplice diventa, uso ricciolo (avete compilarlo in php). Con l'arricciatura puoi fare le richieste POST e HEAD, così come impostare varie intestazioni.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://google.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
?>
una di queste sarebbe chiamata implementazione del wrapper ... Ozzy stava guardando per * raw * http. Ma avendo detto che ... non c'è niente di grezzo su http ... dipende da quale punto di vista è stato visto! –
cURL è più semplice dell'implementazione del lato client HTTP. Tutto quello che devi fare è impostare alcune opzioni e CURL gestisce il resto.
$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);
Se è necessario impostare un colpo di testa che cURL non supporta, utilizzare l'opzione CURLOPT_HTTPHEADER, passando un array di intestazioni aggiuntive. Impostare CURLOPT_HEADERFUNCTION su un callback se è necessario analizzare le intestazioni. Leggi i documenti per curl_setopt
per ulteriori opzioni.
- 1. Come inviare pacchetti Ethernet raw con C#?
- 2. Intestazioni HTTP raw Puri
- 3. Parse Raw HTTP in Python
- 4. Come posso inviare una richiesta HTTP/2 POST in PHP
- 5. RAW POST usando cURL in PHP
- 6. Come inviare POST a HTTP?
- 7. Raw Socket Linux invia/riceve un pacchetto
- 8. Come inviare la bitmap nel pacchetto
- 9. Php mail: come inviare html?
- 10. Perché non posso inviare questo pacchetto IP?
- 11. Come inviare una richiesta HTTP utilizzando Telnet
- 12. Come inviare un'intestazione HTTP in java
- 13. Richiesta HTTP SOAP PHP
- 14. Come RAW POST enorme file XML con l'arricciatura - PHP
- 15. Come inviare una richiesta GET da PHP?
- 16. Come inviare una richiesta SOAP in PHP
- 17. Utilizzare query Eloquent RAW con Slim PHP
- 18. Python arp sniffing raw socket nessun pacchetto di risposta
- 19. come inviare la richiesta HTTP tramite il metodo GET in PHP a un altro sito Web
- 20. Come inviare denaro a paypal tramite php
- 21. Come inviare notifiche ad Android da php?
- 22. Ottieni dati post-raw
- 23. Visibilità PHP amico/pacchetto
- 24. Come inviare richiesta di richiesta HTTP POST al server
- 25. PHP: HTTP o HTTPS?
- 26. inviare variabile JavaScript PHP variabile
- 27. Come inviare solo un pacchetto UDP con netcat?
- 28. PHP: HTTP Basic - Disconnetti
- 29. PHP intestazione rimuovere HTTP
- 30. Come inviare la richiesta POST HTTP e ricevere risposta?
@Ozzy: nota - HTTP utilizza TCP (flussi) non UDP (pacchetti). –
aa vedo THX :) – Ozzy
Perché vuoi implementare HTTP? C'è una buona possibilità che CURL farà quello che vuoi in modo da non dover reinventare la ruota. – outis