[완료]tcpdump의 출력을 php에서 처리 하고자 합니다.
터미널에서 tcpdump 의 출력을 PHP로 처리 하려고 합니다.
tcpdump -p -i eth0 -s 0 -l -w - dst port 3306 | ./query_view.php
query_view.php에서
<?
while (1)
{
$buf = trim(fgets(STDIN));
if ($buf)
{
print $buf . "\n";
}
}
?>
위와 같은 간단한 코드에서 $buf에 있는 string만 뽑아 낼려면 어떻게 해야 하는지요?
아래는 print $buf 출력 내용입니다.
---------------------------------------------------------------
,▒▒LuAA}▒9PSE3▒@▒▒Dp▒▒@p▒▒▒
▒e$▒▒ݘ▒P@▒:COMMIT,▒▒LKK}▒9PSE=▒@▒▒6p▒▒@p▒▒▒
▒e▒ݘ▒P@C▒SET AUTOCOMMIT=1,▒▒L▒l
<<}▒9PSE(▒@▒▒Jp▒▒@p▒▒▒
@▒▒▒p▒▒@p▒▒▒▒L▒MM}▒9PSE?
▒e%▒ݘ▒P@:▒select * from area_▒▒L▒BB}▒9PSE4▒p▒▒@p▒▒▒!
▒|>▒ b▒▒_▒▒Lm<<}▒9PSE(▒p▒▒@p▒▒▒!
▒|>"▒!P@)]▒_▒▒L▒ww}▒9PSEi▒▒p▒▒@p▒▒▒!
▒|>"▒]P@P▒=▒▒icm$▒jw;▒&▒g3▒X▒▒o▒wicm_▒▒L▒II}▒9PSE;@▒▒▒p▒▒@p▒▒▒!
▒|>R"▒hP@▒▒SET NAMES utf8_▒▒L0▒▒}▒9PSEu@▒Ӿp▒▒@p▒▒▒!
▒|>e"▒sP@▒9ISELECT TABLE_SCHEMA, CAST(NULL AS CHAR(1)), TABLE_NAME, INDEX_NAME, CASE WHEN NON_UNIQUE = 0 THEN INDEX_NAME ELSE NULL END, INDEX_NAME='PRIMARY', NON_UNIQUE=0, 1=1 FROM INFORMATION_SCHEMA.STATISTICS WHERE (TABLE_SCHEMA = 'icm' OR (1=2)) AND (1=1 OR 1=2) AND (TABLE_NAME = 'area' OR (1=2)) GROUP BY 1, 2, 3 ,4 ORDER BY 1, 2, 3, 4_▒▒L▒BB}▒9PSE4▒▒p▒▒@p▒▒▒1
▒+X|▒ ▒▒▒_▒▒L▒<<}▒9PSE(p▒▒@p▒▒▒1
▒+X}"▒▒▒P@) ▒_▒▒Lww}▒9PSEi▒▒p▒▒@p▒▒▒1
!0Z▒"▒▒P@}P=▒▒icm
▒▒u▒|▒i{/icm_▒▒II}▒9PSE;@▒▒▒p▒▒@p▒▒▒1
▒+X▒"▒▒P@T▒SET NAMES utf8_▒▒LYff}▒9PSEX@▒▒▒p▒▒@p▒▒▒1
▒+X▒"▒▒(P@@,SELECT TABLE_SCHEMA, CAST(NULL AS CHAR(1)), TABLE_NAME, INDEX_NAME, COLUMN_NAME, SEQ_IN_INDEX, COLLATION='A' FROM INFORMATION_SCHEMA.STATISTICS WHERE (TABLE_SCHEMA = 'icm' OR (1=2)) AND (1=1 OR 1=2) AND (TABLE_NAME = 'area' OR (1=2)) AND (INDEX_NAME = 'A' OR (1=1)) ORDER BY 1, 2, 3, 4, SEQ_IN_INDEX_▒▒LA<<}▒9PSE-@▒▒▒p▒▒@p▒▒▒1
▒+Z"▒▒▒P?▒_▒▒L<<}▒9PSE-▒▒▒p▒▒@p▒▒▒!
▒|?▒"▒JP?▒X:_▒▒L4<<}▒9PSE(▒p▒▒@p▒▒▒1
▒+Z"▒▒▒P?▒▒_▒▒L"<<}▒9PSE(▒p▒▒@p▒▒▒!
▒|?▒"▒JP?▒ZA_▒▒L<<}▒9PSE(▒▒p▒▒@p▒▒▒1
▒+Z"▒▒▒P?▒▒_▒▒Lc<<}▒9PSE(▒▒p▒▒@p▒▒▒!
▒|?▒"▒KP?▒Z@_▒▒L▒Q
<<}▒9PSE( @▒▒▒p▒▒@p▒▒▒
▒e%4▒ݝwP>߀Lg▒▒L▒dKK}▒9PSE=*@▒▒▒p▒▒@p▒▒▒
▒e%4▒ݝwP>▒@▒SET AUTOCOMMIT=0g▒▒L▒gEE}▒9PSE7+@▒▒▒p▒▒@p▒▒▒
▒e%I▒ݝ▒P>▒(▒
BEGIN WORKg▒▒Lk▒▒}▒9PSE▒,@▒Ԍp▒▒@p▒▒▒
▒e%X▒ݝ▒P>▒▒▒aupdate `area` set
`aname` = '외국123'
where
`acode` = '78' and
`aname` = '외국111'
PuTTYPuTTYPuTTYPuTTYPuTTY
-------------------------------------------------------------
tcpdump -p -i eth0 -s 0 -l
tcpdump -p -i eth0 -s 0 -l -w - dst port 3306 | strings -e S | ./query_view.php
strings 의 도움말 읽어보시고,
특히 -e 옵션에 대한 항목 주의하셔서 본인에게 맞는 encoding 을 사용하세요.
OTL
댓글 달기