2013-12-13 5 views
3

FireMonkey3에서 로컬 IP 주소를 검색해야합니다. VCL 버전에서, 나는 그것이FireMonkey3에서 로컬 IP 주소 검색

WSAStartup(...) 
gethostname(...) 

한 가지 제한을위한 방법과 장치 의 WinSock을 사용하고 있습니다 :는 제 3 자 라이브러리를 사용할 필요가 없습니다. AST 구성 요소를 FireMonkey3 플랫폼으로 이식하고 있으며 구성 요소 간의 종속성을 원하지 않습니다.

+0

사용 인디을 시도해보십시오 IdStack 단위

에 포함되어 있습니다. –

답변

9

당신이 크로스 플랫폼 솔루션을 필요로하는 경우 인디 사용하여 시도하고 TIdStack.AddLocalAddressesToList 방법이이 샘플을

var 
    AAddresses: TStrings; 
begin 
    AAddresses := TStringList.Create; 
    try 
    TIdStack.IncUsage; 
    try 
     GStack.AddLocalAddressesToList(AAddresses); 
    finally 
     TIdStack.DecUsage; 
    end; 
    if AAddresses.Count > 0 then 
     //do something 
    finally 
    AAddresses.Free; 
    end; 
end; 
+3

Indy 컴포넌트가 없다면 수동으로 'TIdStack.IncUsage()'를 호출하여 사용하기 전에'GStack' 포인터가 유효한지 확인한 후'TIdStack.DecUsage()'를 호출해야합니다. 너는 그걸로 끝난다. –

+0

@RemyLebeau 이것은 SDD 및 모바일 장치에서 나에게 127.0.0.1을 반환하지만 Wi-Fi를 통해 웹에 액세스 할 수 있습니다. –

+1

@peimanF : Android를 사용하고 있습니까? 'AddLocalAddressesToList()'는 아직 Android에서는 구현되지 않았지만 iOS에서 작동해야합니다. –