2014-01-08 2 views
4

Я использовал jflow для захвата пакетов netflow. Запустив print example, я мог наблюдать этот вид вывода.Как получить информацию о записи потока пакета netflow

13.243.146.68.41472 -> 10.100.0.126.13570 285212682 0 
0.43.0.0.18 -> 0.199.0.0.4352 8321715 100 
53.2.7.225.3571 -> 0.0.1.67.37446 323 5 
1.187.0.3.323 -> 6.0.0.10.28807 0 183 
0.0.0.0.0 -> 0.0.0.0.3571 0 10 
1.1.0.53.0 -> 0.18.17.0.323 889257984 26 
0.0.0.0.0 -> 0.0.0.0.0 0 146 
192.168.1.1.6775 -> 0.53.0.18.0 754988289 112 

Это похоже на печать внутри метода DatagramSocket.receive (DatagramPacket). Как я могу распечатать эти данные, такие как адрес хоста, адрес назначения и т. Д. Записи netflow самостоятельно.

Также я не мог понять, что означают последние два параметра вышеприведенного вывода.

ответ

0

Если вы посмотрите на источник jflow, вы увидите, что именно он печатает.

Связанный код вызывает:

 System.out.println(f.toShortString()); 

Если взглянуть на этот метод, который nettrack.net.netflow.Flow :: toShortString, вы увидите именно то, что он делает:

public String toShortString() 
{ 
    return 
    IpAddr.toString(getSrcAddr())+"."+getSrcPort()+" -> "+ 
    IpAddr.toString(getDstAddr())+"."+getDstPort()+" "+ 
    getDOctets(); 
} 

Продолжайте смотреть источник, чтобы узнать, что делает getDOctets.

https://github.com/aptivate/netgraph/blob/master/jflow-0.3/src/nettrack/net/netflow/Flow.java

Смежные вопросы