Výsledky 1 až 10 z 10

Téma: [Delphi] Fce na zjisteni sitove masky k IP v pocitaci

Hybrid View

Předcházející příspěvek Předcházející příspěvek   Další příspěvek Další příspěvek
  1. #1

    Standardní [Delphi] Fce na zjisteni sitove masky k IP v pocitaci

    Zna nekdo fci na zjisteni sitove masky k IP v pocitaci ?

  2. #2

    Standardní Re: [Delphi] Fce 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

  3. #3

    Standardní Re: [Delphi] Fce na zjisteni sitove masky k IP v pocitaci

    Diky,
    vyzkousim
    // hodlam vylepsovat http://pinger.webz.cz/

  4. #4

    Standardní Re: [Delphi] Fce na zjisteni sitove masky k IP v pocitaci

    A co to přečíst rovnou z registru?
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\{id_adaptéru}\Parameters\Tcpip\DhcpSubnetMask

  5. #5

    Standardní Re: [Delphi] Fce na zjisteni sitove masky k IP v pocitaci

    Citace Původně odeslal Smitka Zobrazit příspěvek
    A co to přečíst rovnou z registru?
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\{id_adaptéru}\Parameters\Tcpip\DhcpSubnetMask
    To mne sice take napadlo (resi to i tu vec kdyz sitovka neni online),
    ale jak poznat ktere zaznamy jsou platne,
    bezne tam tech ID adapteru je vice na jednu sitovku.

  6. #6

    Standardní Re: [Delphi] Fce na zjisteni sitove masky k IP v pocitaci

    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

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. FAQ DvD to DivX
    Založil AjsTi v sekci fóra Programy a problémy s nimi
    Odpovědí: 186
    Poslední příspěvek: 04.01.2010, 20:56
  2. Digitalni zrcadlovka
    Založil Commander v sekci fóra Nákupní poradna
    Odpovědí: 87
    Poslední příspěvek: 26.03.2006, 13:19
  3. Váš názor na starší notebook-viz více v dalším popisu...
    Založil Nvidia fanda v sekci fóra Notebooky
    Odpovědí: 37
    Poslední příspěvek: 15.01.2005, 21:48
  4. Odešlo chlazení na GF3Ti500 - jaké nové ??
    Založil pinky v sekci fóra NVIDIA grafické karty
    Odpovědí: 1
    Poslední příspěvek: 07.01.2003, 19:22
  5. Redukce PowerLeap Tualatin/Slot1
    Založil homberg v sekci fóra Intel procesory
    Odpovědí: 24
    Poslední příspěvek: 24.10.2002, 09:39

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •