예제 #1
0
if (!($address = @$argv[1])) {
    $address = '0.0.0.0';
}
// format
if (!($format = $argv[2])) {
    $format = 'csv';
}
$types = @$argv[3];
$max_packets = @$argv[4];
// establish socket
$s = new GrandstreamSYSLOG();
$s->bind($address);
// prepare XML
if ('xml' == $format) {
    $xml = new XmlWriter();
    $xml->push('messages');
}
// messages to listen for
$messages = array_filter(explode(',', $types));
// start listening on callback
$s->listen('printPacket', $max_packets, $messages);
function printPacket($result)
{
    global $format, $xml;
    switch ($format) {
        case 'php':
            var_export($result);
            break;
        case 'csv':
            $line = date('Y-m-d') . ',' . date('H:i:s') . ',' . $result['ip'] . ',' . $result['message']['type'] . ',';
            unset($result['message']['type']);