config.php
3.41 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
//session_start();
class Tcpconnection
{
private $buff;
public function __construct($buff)
{
$this->buff=$buff;
}
public function connect()
{
$data=array();
$ip=$_SERVER['SERVER_ADDR'];
ini_set('display_errors', true); error_reporting(E_ALL); // <- for debugging purposes only
$socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ( !$socket ) {
$errno = socket_last_error();
$error = sprintf('%s (%d)', socket_strerror($errno), $errno);
trigger_error($error, E_USER_ERROR);
}
if (socket_connect($socket, $ip, 502) ) {
// $errno = socket_last_error($socket);
// $error = sprintf('%s (%d)', socket_strerror($errno), $errno);
// trigger_error($error, E_USER_ERROR);
//echo "Connected";
}
$length = strlen($this->buff);
$sent = socket_write($socket, $this->buff, $length);
// echo $sent;
if ( FALSE===$sent ) {
$errno = socket_last_error($socket);
$error = sprintf('%s (%d)', socket_strerror($errno), $errno);
trigger_error($error, E_USER_ERROR);
}
else if($sent>0)
{
// echo $sent." the number of socket resources contained ";
}
else if ( $length!==$sent ) {
$msg = sprintf('only %d of %d bytes sent', $length, $sent);
trigger_error($msg, E_USER_NOTICE);
}
}
private function textBinASCII($text)
{
$bin = array();
for($i=0; strlen($text)>$i; $i++)
$bin[] = bindec(ord($text[$i]));
//echo hexdec($text[$i])."\n";
return implode(',',$bin);
}
private function ASCIIBinText($bin)
{
$text = array();
$bin = explode(" ", $bin);
for($i=0; count($bin)>$i; $i++)
$text[] = bindec($bin[$i]);
return implode(",",$text);
}
public function Connect_Socket()
{
$hold=array();
$ip=$_SERVER['SERVER_ADDR'];
ini_set('display_errors', true); error_reporting(E_ALL); // <- for debugging purposes only
$socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ( !$socket ) {
$errno = socket_last_error();
$error = sprintf('%s (%d)', socket_strerror($errno), $errno);
trigger_error($error, E_USER_ERROR);
}
if (socket_connect($socket, $ip, 502) ) {
// $errno = socket_last_error($socket);
// $error = sprintf('%s (%d)', socket_strerror($errno), $errno);
// trigger_error($error, E_USER_ERROR);
//echo "Connected";
}
$length = strlen($this->buff);
$sent = socket_write($socket, $this->buff, $length);
// echo $sent;
if ( FALSE===$sent ) {
$errno = socket_last_error($socket);
$error = sprintf('%s (%d)', socket_strerror($errno), $errno);
trigger_error($error, E_USER_ERROR);
}
else if($sent>0)
{
// echo $sent." the number of socket resources contained ";
}
else if ( $length!==$sent ) {
$msg = sprintf('only %d of %d bytes sent', $length, $sent);
trigger_error($msg, E_USER_NOTICE);
}
if(false !== ($bytes = socket_recv($socket,$buf,12,MSG_PEEK))) {
//echo "Read $bytes bytes from socket_recv(). Closing socket...";
//echo "<br>";
//echo $bytes;
}
else {
echo "socket_recv() failed; reason: " . socket_strerror(socket_last_error($socket)) . "\n";
}
socket_close($socket);
//01 02 00 00 00 05 01 04 02 00 01
for ($i=0; $i <strlen($buf) ; $i++) {
$hold[]=hexdec(ord($buf[$i]));
//printf("%d",hexdec(ord($buf[$i])));
//echo "\n";
}
$function=$hold[count($hold)-1];
return $function;
}
}
?>