Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Получение и разшифровка UDP трафика
Форумы портала PHP.SU » » Работа с сетью » Получение и разшифровка UDP трафика

Страниц (1): [1]
 

1. v0v - 28 Января, 2015 - 12:32:45 - перейти к сообщению
Hello All.
На конкретный сервер 172.16.46.28 с конкретного адреса 192.168.1.91 постоянные шлют данные по UDP по конкретному порту 43200. Стоит задача получить и расшифровать данные. Каким образом оправляются данные не известно.
команда "tcpdump -X -pniem0 host 192.168.1.91" показывает результат наличия трафика

11:44:53.498999 IP 192.168.1.91.47507 > 172.16.46.28.43200: UDP, length 135
0x0000: 4500 00a3 0000 4000 3c11 dc50 b214 9e5b E.....@.<..P...[
0x0010: c16d 501c b92f a939 008f 8615 3532 3230 .mP../.9....5221
0x0020: 2c54 524b 2c31 3432 3234 3338 3034 302c ,TR,1422438041,
0x0030: 312c 3331 3335 3231 3836 2c39 3238 3236 1,31352181,92826
0x0040: 3632 2c35 352c 3934 2c33 3935 372c 382c 62,52,96,3953,8,
0x0050: 3130 2c32 3836 372c 372c 3232 2c34 360a 10,2867,7,22,46.
0x0060: 3532 3231 2c54 524b 2c31 3432 3234 3338 5221,TR,1422438
0x0070: 3034 372c 312c 3330 3232 3830 3931 2c31 047,1,30228091,1
0x0080: 3835 3730 3439 392c 302c 3136 342c 3130 8570499,0,164,10
0x0090: 382c 3132 2c37 2c31 3432 322c 362c 3137 8,12,7,1422,6,17
0x00a0: 2c33 31 ,31
11:44:53.499034 IP 172.16.46.28 > 191.168.1.91: ICMP 172.16.46.28 udp port
321 unreachable, length 36
0x0000: 4500 0038 f8d7 4000 4001 dff3 c16d 501c E..8..@.@....mP.
0x0010: b214 9e5b 0303 13ef 0000 0000 4500 00a3 ...[........E...
0x0020: 0000 4000 3c11 dc50 b214 9e5b c16d 501c ..@.<..P...[.mP.
0x0030: b92f a939 008f 8615 ./.9....

Подскажите, как организовать прием а расшифровку пакетов UDP для дальнейшей записи в базу?
2. RickMan - 28 Января, 2015 - 13:05:31 - перейти к сообщению
http://www[dot]binarytides[dot]com/udp-s[dot][dot][dot]gramming-in-php/ - тут вроде описаны обе части этой цепи. Ваша - вторая. Там и порт, и адрес и вылов.
3. v0v - 30 Января, 2015 - 10:43:10 - перейти к сообщению
Все получилось. Спасибо.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $socket = stream_socket_server("udp://0.0.0.0:43200", $errno, $errstr, STREAM_SERVER_BIND);
  5. if (!$socket) {
  6.     die("$errstr ($errno)");
  7. }
  8.  
  9. do {
  10.    $pkt = stream_socket_recvfrom($socket, 135, 0, $peer);
  11.     echo "$peer\n";
  12.     echo "$pkt\n";
  13. }
  14. while ($pkt !== false);
  15.  
  16. ?>

 

Powered by ExBB FM 1.0 RC1