Toon posts:

[JAVA] DatagramPacket source IP & port ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe kun je een UDP packet maken in Java waarin je handmatig de Source IP en Source Port attributen in kan stellen ?

Ik weet dat die taak bij het IP packet ligt, maar ik kan geen manier vinden om die aan te passen...

  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

public DatagramSocket(int port, InetAddress laddr) throws SocketException

Creates a datagram socket, bound to the specified local address. The local port must be between 0 and 65535 inclusive. If the IP address is 0.0.0.0, the socket will be bound to the wildcard address, an IP address chosen by the kernel.
If there is a security manager, its checkListen method is first called with the port argument as its argument to ensure the operation is allowed. This could result in a SecurityException.


Parameters:
port - local port to use
laddr - local address to bind

Throws:
SocketException - if the socket could not be opened, or the socket could not bind to the specified local port.

SecurityException - if a security manager exists and its checkListen method doesn't allow the operation.

Since:
JDK1.1
See Also:
SecurityManager.checkListen(int)


komt uit de Java Api : http://java.sun.com/j2se/1.4.2/docs/api/

Succes ermee ;)

[ Voor 3% gewijzigd door Boegel op 18-03-2004 00:02 ]

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Boegel schreef op 18 maart 2004 @ 00:01:
public DatagramSocket(int port, InetAddress laddr) throws SocketException
Een socket is een endpoint/startpoint voor, in dit geval UDP, packets, niet een UDP packet zelf.
Het UDP packet zelf is geimplementeerd als DatagramPacket welke je idd moet verzenden via een DatagramSocket

Verwijderd

Topicstarter
Ja, maar kun je hiermee de source gegevens in het packet ook aanpassen, naast de destination ?

Als ik het goed lees dan stel je de 'local' port en IP in via de (Datagram)Socket, en zoals mij bekend geef je aan de constructor van DatagramPacket op wat de (met deze naamgeving) 'remote' port is :? ?

Maar zeker qua IP-adres ben je dan toch gebonden aan de beschikbare IP-adressen van de aanwezige network interfaces (zoals ingesteld in het OS) ?

Er staat namelijk:
laddr - local address to bind
Dus hij gaat die socket ook daadwerkelijk binden, ipv alleen een pakketje te creeeren en de deur uit te doen ?

NB:
Hij gaat dan toch geen listening socket op zetten he, aangezien er bind staat ?


Wat ik bedoel is een los pakketje en het is niet nodig om daadwerkelijk een soort van connectie op te zetten. Jaja, dat werkt niet zo met UDP, dat weet ik ;)...

Verwijderd

Topicstarter
Nogmaals kick.

Kan niemand hier op antwoorden ?

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Als je nu eens wat meer informatie gaf over het hoe en waarom je dit wil gaan doen?

Misschien kan je het ook op een andere manier oplossen?!

Verwijderd

Topicstarter
wat meer informatie
Welke informatie mis je dan ?
hoe
Is mijn vraag.
waarom
Doet niet ter zake, want:
Misschien kan je het ook op een andere manier oplossen?!
Nee, ik heb er heus wel voldoende over nagedacht.


Ik vraag gewoon of iets theorethisch mogelijk is, niet wie er een oplossing kan bedenken voor een of ander probleem ;)...

Niet altijd meteen roepen dat je meer informatie nodig hebt, of de door TS gewenste methode en/of het nut daarvan in twijfel trekken.
Soms is dat misschien nodig, maar soms is het nogal bijdehand als je begrijpt wat ik bedoel...

[ Voor 33% gewijzigd door Verwijderd op 22-03-2004 18:50 ]


  • DieterVDW
  • Registratie: Juli 2002
  • Laatst online: 12-02-2017
Ik heb het net ff vlug geprobeerd en DatagramSocket smijt dus idd
een exception als je aan een adres probeert te binden dat de computer niet 'bezit'.
Ik veronderstel dus dat Java dit niet toelaat, wat ik ook wel logisch vind.

Als je je source adres wil faken heb je raw socket access nodig,
iets wat niet in elke programmeertaal en niet op elk OS beschikbaar is.
In C/C++ onder linux/winXP kun je dit in ieder geval doen.
Vlug ff C leren dus :p

Maar echt nuttig is het niet hoor... Je kunt er bitter weinig mee doen.

Verwijderd

Topicstarter
Precies DieterVDW :)...

Dat is dus wat ik al dacht.

Ik begrijp dat dit wel kan in C etc, maar het is voor een Appletje...

Dat Java je geen RAW Sockets laat opzetten vreesde ik ook al, het is immers een taal op een hoger niveau, en Windows ondersteunt alleen het RAW ICMP pakketjes, terwijl de Java VM daar wel op moet kunnen draaien....

Het is voor mij wel van nut, het gaat om een applicatie ten behoeve van (daadwerkelijk) anoniem communiceren, en in dit geval zaten er een aantal belangrijke voordelen aan Java.

  • DieterVDW
  • Registratie: Juli 2002
  • Laatst online: 12-02-2017
Anoniem communiceren? Klinkt wel interessant.
Ben ik ook al lang over aan't nadenken.
(Heb laatst nog progje geschreven om TCP verbinding over x aantal socks servers te routen, just like the movies ;))

Ik zie wel niet in hoe dit je van nut zou kunnen zijn.
Je kunt dan toch alleen maar anoniem 1-richtingsverkeer realiseren?
(Want als de andere partij wil antwoorden moet 'm toch je IP weten hé)

Verwijderd

Topicstarter
Jaaaaa...

Maar met wat ik in gedachten heb niet ;)...

Maar dat is offtopic.

Ik vrees dan dat er niets ander op zit dan dat ik het maar in C oid schrijf ;(...

Thx for the tip iig :)

  • madwizard
  • Registratie: Juli 2002
  • Laatst online: 26-10-2024

madwizard

Missionary to the word of ska

Verwijderd schreef op 22 maart 2004 @ 19:12:
Dat Java je geen RAW Sockets laat opzetten vreesde ik ook al, het is immers een taal op een hoger niveau, en Windows ondersteunt alleen het RAW ICMP pakketjes, terwijl de Java VM daar wel op moet kunnen draaien....
Winsock op win2k en hoger kunnen wel een soort van raw TCP/UDP/IP aan, maar ik dacht dat winsock nogal het een en ander doet met pakketjes voordat ie ze verstuurt.. Ik geloof dat het source IP altijd weer teruggezet werd maar weet het niet zeker meer. In ieder geval kun je WinPcap (site lijkt down nu) gebruiken, die werkt zeker goed en daarmee heb je controle tot en met de ethernet laag.

edit: WinPcap werkt natuurlijk niet direct in java (of iemand moet een wrapper geschreven hebben), maar aangezien je al aangaf het ook in C te kunnen doen..

edit2:
Verwijderd schreef op 22 maart 2004 @ 19:12:
Ik begrijp dat dit wel kan in C etc, maar het is voor een Appletje...
Hier had ik overheen gelezen |:(, misschien dat er wel zoiets als winpcap is voor de apple (er is wel libpcap onder unix).

[ Voor 27% gewijzigd door madwizard op 22-03-2004 22:04 ]

www.madwizard.org


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
madwizard schreef op 22 maart 2004 @ 21:57:
(...)
Hier had ik overheen gelezen |:(, misschien dat er wel zoiets als winpcap is voor de apple (er is wel libpcap onder unix).
Volgens mij bedoelt hij een applet in dit geval :+

Verwijderd

Topicstarter
:D

Wéér overheen gelezen ;)...

Zoals ik al zei kan Windows vanaf Win2k ICMP pakketjes in RAW mode creeeren.

LibPcap is gewoon een device driver, heel mooi allemaal maar ik vroeg me af of het native kon :)....

Ik kom er denk ik wel uit, er zit toch weinig anders op :).

  • madwizard
  • Registratie: Juli 2002
  • Laatst online: 26-10-2024

madwizard

Missionary to the word of ska

Argh |:( Niet posten als je de hele dag tentamens hebt zitten leren dus ;)

edit (met het risico nog meer stoms te zeggen):
Zoals ik al zei kan Windows vanaf Win2k ICMP pakketjes in RAW mode creeeren.
ICMP kan al vanaf win9x volgens mij, daarnaast heb je nog een andere RAW mode die ook meer kan dan alleen ICMP maar er zaten wat vervelende dingen aan vast:
Zie winsock FAQ 4.1.

[ Voor 73% gewijzigd door madwizard op 22-03-2004 23:09 ]

www.madwizard.org


  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

Als je de source wilt aanpassen dan wil je dus eigenlijk een adres spoofen...waar kan dat nou nuttig voor zijn behalve voor duistere haxx0r zaken :)

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
madwizard schreef op 22 maart 2004 @ 22:58:
Argh |:( Niet posten als je de hele dag tentamens hebt zitten leren dus ;)
offtopic:
Succes met je tentamens dan maar ;)

Verwijderd

Topicstarter
Als je eens leest dan weet je waarvoor.

Verwijderd

Topicstarter
ICMP kan al vanaf win9x volgens mij, daarnaast heb je nog een andere RAW mode die ook meer kan dan alleen ICMP maar er zaten wat vervelende dingen aan vast:
Ja, maar niet met een "gespoofte" afzender. :)
Pagina: 1