BandwidthD
demo (beetje overkill)
Doel van het progje is inzicht in traffic over een van de nic's in je pc (server).
Uiteraard linux-based en met logfunctie en weboutput. Eindelijk een simpel progje wat doet wat al zoveel mensen hier willen: stats bijhouden van inet verkeer.
De huidige versie werkt perfect, echter een nadeel:
situatie:
werkgroep met pc's ----- switch ------- gateway/server ------- inet
waaneer een van de werkgroep pc's een bestandje van de server haalt wordt dit ook geteld. En dat is nat. niet de bedoeling omdat dat geen bal met internet te maken heeft!
Oplossing is gevonden na enig geklooi en het bezoeken van het project forum.
bandwidthd.c
(simpele oplossing eigelijk
)
Project is nat. nog in ontwikkelings fase maar heeft genoeg potentieel om serieus genomen te mogen worden.
Groot voordeel is dat je niet afhankelijk bent van allerlei andere progjes; slechts enkele libraries zijn nodig voor het compilen. De eenvoud, daar zit het hem in.
Heb het hier draaien op een clarkconnect gateway/server. Perfect!
demo (beetje overkill)
Doel van het progje is inzicht in traffic over een van de nic's in je pc (server).
Uiteraard linux-based en met logfunctie en weboutput. Eindelijk een simpel progje wat doet wat al zoveel mensen hier willen: stats bijhouden van inet verkeer.
De huidige versie werkt perfect, echter een nadeel:
situatie:
werkgroep met pc's ----- switch ------- gateway/server ------- inet
waaneer een van de werkgroep pc's een bestandje van de server haalt wordt dit ook geteld. En dat is nat. niet de bedoeling omdat dat geen bal met internet te maken heeft!
Oplossing is gevonden na enig geklooi en het bezoeken van het project forum.
bandwidthd.c
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| srcip = ntohl(*(uint32_t *) (&ip->ip_src)); dstip = ntohl(*(uint32_t *) (&ip->ip_dst)); /* -- -- Line 225 == Begin Edit -- -- */ for (counter = 0; counter < SubnetCount; counter++) { if (SubnetTable[counter].ip == (srcip & SubnetTable[counter].mask)) { if (SubnetTable[counter].ip == (dstip & SubnetTable[counter].mask)) break; ptrIPData = FindIp(srcip); // Return or create this ip's data structure if (ptrIPData) Credit(&(ptrIPData->Send), ip); ptrIPData = FindIp(0); // Totals if (ptrIPData) Credit(&(ptrIPData->Send), ip); } if (SubnetTable[counter].ip == (dstip & SubnetTable[counter].mask)) { ptrIPData = FindIp(dstip); if (ptrIPData) Credit(&(ptrIPData->Receive), ip); ptrIPData = FindIp(0); if (ptrIPData) Credit(&(ptrIPData->Receive), ip); } } /* End of my edit */ } inline void Credit(struct Statistics *Stats, const struct ip *ip) |
(simpele oplossing eigelijk
Project is nat. nog in ontwikkelings fase maar heeft genoeg potentieel om serieus genomen te mogen worden.
Groot voordeel is dat je niet afhankelijk bent van allerlei andere progjes; slechts enkele libraries zijn nodig voor het compilen. De eenvoud, daar zit het hem in.
Heb het hier draaien op een clarkconnect gateway/server. Perfect!
[ Voor 9% gewijzigd door nzyme op 10-01-2004 13:09 ]
| Hardcore - Terror |