Avatar billede repsac666 Nybegynder
07. januar 2005 - 09:19 Der er 5 kommentarer

Raw sockets - IOControl

Hejsa!

Jeg er i gang med at lave et program der skal kunne sniffe pakker der bliver modtaget på min computer vha raw sockets. Jeg har fundet et eksempel som jeg ellers forstår ret godt, men der lige én lille til jeg ikke forstår og den følger her:


private const int IOC_VENDOR = 0x18000000;       
private const int IOC_IN = -2147483648; //0x80000000;
private const int SIO_RCVALL = IOC_IN | IOC_VENDOR | 1;   

mySocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
mySocket.Bind(new IPEndPoint(IPAddress.Parse(IPaddr), 0);
mySocket.IOControl(SIO_RCVALL, BitConverter.GetBytes((int)1), null);

Det handler altså om IOControl der får en parameter SIO_RCVALL der er defineret oven over. Jeg forstår ikke hvad der er der sker, er der en der kan hjælpe mig?

Det eksempel som jeg snakker om kan findes her:
http://www.planet-source-code.com/vb/scripts/ShowZip.asp?lngWId=10&lngCodeId=2546&strZipAccessCode=tp%2FP25467337
hvis linket ikke virker kan I søge efter Packet Monitor på www.planet-source-code.com under .Net.

Tak!
Avatar billede arne_v Ekspert
07. januar 2005 - 09:28 #1
private const int IOC_VENDOR = 0x18000000;     
private const int IOC_IN = -2147483648; //0x80000000;
private const int SIO_RCVALL = IOC_IN | IOC_VENDOR | 1; 

gør at SIO_RCVALL får værdien 0x98000001

og IOControl kaldet gør noget ved den raw socket udfra hvilke bits der er sat

der er 4 bits sat

du bliver nødt til at finde noget docs for at se hvad de bits gør

hvis navnene påd e konstanter havde været bedere, så kunne man have gættet
udfra det
Avatar billede repsac666 Nybegynder
07. januar 2005 - 10:05 #2
hmm, ok. Hvad er det egentlig at | betyder? Jeg gættede på at det betød "eller", men det er vel || som i java?
Avatar billede arne_v Ekspert
07. januar 2005 - 10:35 #3
Det er det samme i C# som i Java som i C/C++

|| = logisk OR

| = binær OR

ved binær OR OR'er man de enkelte bits uafhængigt af hinanden
Avatar billede arne_v Ekspert
07. januar 2005 - 10:36 #4
Avatar billede arne_v Ekspert
22. januar 2005 - 22:41 #5
OK ?
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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