2011-06-02 113 views
6

我已經發現使用此代碼我的計算機的本地IP地址(使用套接字):如何檢測本地網絡上其他設備的IP地址?

Function Ip_Local : String; 
    Var Acces_Sock : TCustomIpClient; 
Begin 
    Acces_Sock := TCustomIpClient.Create(Nil); 
    Try 
    Result := Acces_Sock.LocalHostAddr 
    Finally 
    Acces_Sock.Free; 
    End; 
End; 

有關,如檢測到路由器的局域網內部的IP地址,如果可能的話,任何LAN連接的設備的什麼一臺DVR?

+1

定義,默認網關地址是已知的,通過IpHelper API問,其他設備必須** **發現,使用UPnP或ICMP。 – 2011-06-02 08:52:21

回答

1

利用Indy:

function CsiGetRemoteIpAddress(const pHostName: string): string; 
begin 
    TIdStack.IncUsage; 
    try 
    Result := GStack.ResolveHost(pHostName); 
    finally 
    TIdStack.DecUsage; 
    end; 
end; 
+0

這種情況下的主機名是什麼 - ? – volvox 2011-06-02 18:11:34

+0

我的意思是ResolveHost(pHostName)解析mycomputer的IP地址,如果pHostName是mycomputer主機名。我不知道路由器的主機名。 – volvox 2011-06-02 18:30:53

+0

ok - ResolveHost(pHostName)不解析給定路由器主機名的IP地址,它僅用於計算機主機名。至少這是我到目前爲止。 – volvox 2011-06-02 18:38:39

相關問題