-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathrequest.php
48 lines (39 loc) · 1.1 KB
/
request.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
$url = "http://yahoo.co.jp/";
$parts = parse_url(https://github.com/$url);
$domain = $parts['host'];
$path = $parts['path'] . '?' . $parts['query'];
$uv = uv_ares_init_options(uv_default_loop(), array(
"servers" => array(
"8.8.8.8"
),
"port"=>53
),null);
ares_gethostbyname($uv,$domain, AF_INET, function($name, $addr) use ($path, $host){
$a = array_shift($addr);
$address = uv_ip4_addr($a,"80");
$tcp = uv_tcp_init();
uv_tcp_connect($tcp, $address, function($client, $stat) use ($path, $host){
var_dump(uv_tcp_getpeername($client));
$request = <<<EOF
GET {$path} HTTP/1.0
Host: {$host}
EOF;
echo $request;
var_dump($client);
uv_write($client,$request,function($client, $stat){
echo "write";
if ($stat == 0) {
uv_read_start($client,function($client, $nread, $buffer){
echo "\n1\n";
//var_dump($buffer);
uv_close($client);
});
} else {
echo 2;
uv_close($client);
}
});
});
});
uv_run();