Zna nekdo fci na zjisteni sitove masky k IP v pocitaci ?
Zna nekdo fci na zjisteni sitove masky k IP v pocitaci ?
Toto zoberie prvu adresu, ktoru najde (okrem 127.0.0.1).
Kód:uses IPHlpAPI; procedure TfrmMain.DetectIP; var IPAddrRow: TMibIPAddrRow; TableSize, ErrorCode, NumEntries: DWord; I: Integer; pBuf: PChar; begin MyIP := 0; LoadIpHlp; TableSize := 0; // first call: get table length ErrorCode := GetIpAddrTable(Nil, @TableSize, true); if Errorcode <> ERROR_INSUFFICIENT_BUFFER then Exit; GetMem(pBuf, TableSize); // get table ErrorCode := GetIpAddrTable(PTMibIPAddrTable(pBuf), @TableSize, true); if ErrorCode = NO_ERROR then begin NumEntries := PTMibIPAddrTable(pBuf)^.dwNumEntries; if NumEntries > 0 then begin for i := 1 to NumEntries do begin IPAddrRow := PTMIBIPAddrRow(pBuf+SizeOf(DWord)+(I-1)*SizeOf(TMIBIPAddrRow))^; if (IPAddrRow.dwAddr<>0) then begin MyIP := IPAddrRow.dwAddr; MyMask := IPAddrRow.dwMask; Bcast := MyIP and MyMask or not MyMask; if MyIP<>$100007F then Break; // 127.0.0.1 end; end; end; end; FreeMem(pBuf); if MyIP=0 then begin ShowMessage(MSG_ERROR, 'Unable to detect network settings'); Exit; end; StatusBar.Panels[1].Text := 'IP: '+UDPSocket.IPtoDotDot(MyIP); StatusBar.Panels[2].Text := 'Mask: '+UDPSocket.IPtoDotDot(MyMask); StatusBar.Panels[3].Text := 'Broadcast: '+UDPSocket.IPtoDotDot(Bcast); ShowMessage(MSG_SYSTEM, 'Detected '+StatusBar.Panels[1].Text+', '+StatusBar.Panels[2].Text+', '+StatusBar.Panels[3].Text); end;
1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm
Diky,
vyzkousim
// hodlam vylepsovat http://pinger.webz.cz/
A co to přečíst rovnou z registru?
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\{id_adaptéru}\Parameters\Tcpip\DhcpSubnetMask
Nemyslím, že každá síťovka má víc ID (nevím to na 100%). Síťový zařízení by mělo mít jednu konfiguraci.
Já bych asi zkusil se kouknout do klíče:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\000x\
ten se bude dobře projíždět cyklem - x sou čísla od 0 do někam.
V každým tom klíči jsou informace o síťovejch zařízeních, sou tam takový věci jako spojení přes paralelní port, ale dá se určit co je LAN - ty by měli mít hodnotu Characteristics = 129
Pak je tam hodnota NetCfgInstanceId, což je ID k tý konfiguraci. Tak bych tam dal buď vývěr adaptéru, nebo bych ještě prohledal pár klíčů na IP.
Třeba ještě:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Tcpip\Parameters\Interfaces\{id_z_NetCfgInstanc eId}
a tam už jsou všechny potřebný hodnoty...
No a nebo by šlo získat podezřelý IDčka z nějaký hodnoty v HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Tcpip\Linkage
Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)