Avatar billede tonikingo Nybegynder
26. september 2003 - 10:03 Der er 1 kommentar

Routing på PC via Java-program

Det er i Java relativt let at åbne en port på en Server, connecte dertil via en Client, og etablere f.eks. overførsel af data m.v. - man benytter sig af sockets, og sockets benytter sig af porte i TCP/IP. Man kan også benytte mere rå data, ved hjælp af datagrammer (UDP). Man kan let tilgå serveren fra clienten, via streams - alt det der - det kender jeg...

Men ...

Hvis jeg nu gerne ville have, at al trafik ind ad mit ene netkort skal ind i mit Java-program, databehandles, og sendes via et andet netkort, afhængig af hvem det var adresseret til osv. - hvad skal der så til, i Java ?

Jeg har ikke fundet noget i java.net, der kunne det - men det kan jo også tænkes, at jeg bare ikke har vidst hvad det var, det skulle hedde.

Jeg ville anvende en sådan stump software som gateway - som router - som virus-scanner - der er mange muligheder.

Er der nogen, der i dén forbindelse eventuelt ved, hvor man finder routing-software (eventuelt skrevet i C), for så kan man jo forbinde det til sit java-program via native-interface't.

/Kingo
Avatar billede s.nielsen Nybegynder
03. oktober 2003 - 15:13 #1
Hej,
Det må siges at være et noget ambitiøst projekt!
Der findes ikke noget i Javas klassebibliotek til at lave den slags, så du kommer ikke udenom native kode.
I det hele taget vil det efter min mening være dumt at bruge Java til den slags, da alt funktionaliteten skal foregå i native, og derfor vil din Java kode blot være et sæt wrapper klasser for JNI metoderne.
Hvilken platform skal det køre på? I linux/BSD verdenen findes der jo mange udmærkede open source implementeringer af den slags, eksempelvis iptables (firewall/nat) libpcap (network sniffer/analyzer library) osv.
Jeg ved ikke hvad der er tilgængeligt til Windows.
Det burde være overkommeligt at lave sin egen router/firewall men det kræver jo at man har kendskab til hvordan network adress translation (NAT) princippet fungerer.
Routerfunktionen kan man naturligvis "krydre" med en analysering af de enkelte pakker for at undgå virus osv, men det er (1) noget helt andet og (2) ret ressourcekrævende - glem det hvis systemet skal understøtte eks. filoverførsler på et LAN.

Opsummering:
Glem Java, brug C/C++
Linux har udemærkede open source værktøjer der kan bruges som inspiration
Glem virus checking det gør en klientinstallation af eks. McAfee meget bedre, koncentrer dig om router/firewall funktionalitet.

Jeg har selv overvejet at lave noget lignende på en LIAB (linux in a box), et lille dansk udviklet indlejret system der kører linux (www.liab.dk) det kunne måske have interesse..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester