1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-23 02:35:57 +01:00

Change tcp_ip directory structure

This commit is contained in:
Matias Fontanini
2016-02-09 19:56:30 -08:00
parent 69fc5ff54b
commit 3b848060aa
10 changed files with 399 additions and 265 deletions

View File

@@ -15,7 +15,7 @@ IF(libtins_FOUND)
dns_queries
dns_spoof
dns_stats
http_dump
stream_dump
icmp_responses
interfaces_info
tcp_connection_close
@@ -41,7 +41,7 @@ IF(libtins_FOUND)
ADD_EXECUTABLE(arpmonitor EXCLUDE_FROM_ALL arpmonitor.cpp)
ADD_EXECUTABLE(dns_queries EXCLUDE_FROM_ALL dns_queries.cpp)
ADD_EXECUTABLE(dns_spoof EXCLUDE_FROM_ALL dns_spoof.cpp)
ADD_EXECUTABLE(http_dump EXCLUDE_FROM_ALL http_dump.cpp)
ADD_EXECUTABLE(stream_dump EXCLUDE_FROM_ALL stream_dump.cpp)
ADD_EXECUTABLE(icmp_responses EXCLUDE_FROM_ALL icmp_responses.cpp)
ADD_EXECUTABLE(interfaces_info EXCLUDE_FROM_ALL interfaces_info.cpp)
ADD_EXECUTABLE(tcp_connection_close EXCLUDE_FROM_ALL tcp_connection_close.cpp)

View File

@@ -29,7 +29,7 @@
#include <iostream>
#include <sstream>
#include "tins/tcp_ip.h"
#include "tins/tcp_ip/stream_follower.h"
#include "tins/sniffer.h"
#include "tins/ip_address.h"
#include "tins/ipv6_address.h"
@@ -47,6 +47,11 @@ using Tins::SnifferConfiguration;
using Tins::TCPIP::StreamFollower;
using Tins::TCPIP::Stream;
// This example takes an interface and a port as an argument and
// it listens for TCP streams on the given interface and port.
// It will reassemble TCP streams and show the traffic sent by
// both the client and the server.
// Convert the client endpoint to a readable string
string client_endpoint(const Stream& stream) {
ostringstream output;
@@ -94,6 +99,7 @@ void on_client_data(Stream& stream) {
// Whenever there's new server data on the stream, this callback is executed.
// This does the same thing as on_client_data
void on_server_data(Stream& stream) {
std::cout << "server data\n";
string data(stream.server_payload().begin(), stream.server_payload().end());
cout << server_endpoint(stream) << " >> "
<< client_endpoint(stream) << ": " << endl << data << endl;
@@ -118,8 +124,8 @@ void on_new_connection(Stream& stream) {
}
int main(int argc, char* argv[]) {
if (argc != 2) {
cout << "Usage: " << argv[0] << " <interface>" << endl;
if (argc != 3) {
cout << "Usage: " << argv[0] << " <interface> <port>" << endl;
return 1;
}
using std::placeholders::_1;
@@ -128,7 +134,7 @@ int main(int argc, char* argv[]) {
// Construct the sniffer configuration object
SnifferConfiguration config;
// Only capture TCP traffic sent from/to port 80
config.set_filter("tcp port 80");
config.set_filter("tcp port " + string(argv[2]));
// Construct the sniffer we'll use
Sniffer sniffer(argv[1], config);