@@ -15,7 +15,7 @@ if (!function_exists("posix_getuid") || posix_getuid() != 0) {
15
15
?>
16
16
--FILE--
17
17
<?php
18
- $ s_c = socket_create (AF_PACKET , SOCK_RAW , ETH_P_IP );
18
+ $ s_c = socket_create (AF_PACKET , SOCK_RAW , ETH_P_ALL );
19
19
$ s_bind = socket_bind ($ s_c , 'lo ' );
20
20
var_dump ($ s_bind );
21
21
@@ -27,16 +27,17 @@ if (!function_exists("posix_getuid") || posix_getuid() != 0) {
27
27
28
28
socket_getpeername ($ s_c , $ istr2 , $ iindex2 );
29
29
30
- $ s_s = socket_create (AF_PACKET , SOCK_RAW , ETH_P_ALL );
30
+ $ s_s = socket_create (AF_PACKET , SOCK_RAW , ETH_P_LOOP );
31
31
$ v_bind = socket_bind ($ s_s , 'lo ' );
32
32
33
- $ buf = str_repeat ("0 " , ETH_FRAME_LEN ) .
34
- str_repeat ("\xFF" , 6 ) .
35
- str_repeat ("\x11" , 6 ) .
36
- "\x08\x00" .
37
- str_pad ("TEST " , 46 , "\x00" );
33
+ $ buf = pack ("H12H12n " , "ffffffffffff " , "000000000000 " , ETH_P_LOOP );
34
+ $ buf .= str_repeat ("A " , 46 );
38
35
39
36
var_dump (socket_sendto ($ s_s , $ buf , strlen ($ buf ), 0 , "lo " , 1 ));
37
+ var_dump (socket_recvfrom ($ s_c , $ rsp , strlen ($ buf ), 0 , $ addr ));
38
+
39
+ var_dump ($ addr );
40
+ var_dump ($ rsp );
40
41
41
42
socket_close ($ s_c );
42
43
?>
@@ -47,4 +48,23 @@ string(2) "lo"
47
48
int(%i)
48
49
49
50
Warning: socket_getpeername(): unable to retrieve peer name [95]: %sot supported in %s on line %d
50
- int(1574)
51
+ int(60)
52
+ int(60)
53
+ string(2) "lo"
54
+ object(SocketEthernetInfo)#3 (4) {
55
+ ["socket"]=>
56
+ uninitialized(Socket)
57
+ ["ethprotocol"]=>
58
+ int(96)
59
+ ["macsrc"]=>
60
+ string(11) "0:0:0:0:0:0"
61
+ ["macdst"]=>
62
+ string(17) "ff:ff:ff:ff:ff:ff"
63
+ ["payload"]=>
64
+ array(2) {
65
+ ["ipsrc"]=>
66
+ string(11) "%d.%d.%d.%d"
67
+ ["ipdst"]=>
68
+ string(11) "%d.%d.%d.%d"
69
+ }
70
+ }
0 commit comments