프로그래밍
[Delphi] 델파이 내부IP 외부IP 구하는 함수
고객이음
2023. 2. 6. 15:26
반응형
프로그래밍 개발을 하다보면,
내부IP or 외부IP 정보가 필요할 때가 있습니다.
로그 기록할 때 주로 많이 필요로 합니다.
내부IP 주소는 윈도우 함수로 쉽게 구할 수 있습니다.
하지만 외부IP 주소는 PC 자체에서 구하기는 쉽지 않습니다.
주로 사용하는 방식은 외부 특정 서버와 통신할 때 반환되는 정보로 외부IP주소를 구합니다.
서버 호스트에 아래 프로그램을 업로드하고 호출하는 방식으로 외부 IP를 구할 수 있습니다.
myip.asp 의 내용은
<%
Dim connect_IP
connect_IP = request.ServerVariables("Remote_Addr")
response.write connect_IP
%>
PHP로 작성하려면
<?
echo $_SERVER['REMOTE_ADDR']
?>
[ 함수 정의 ]
function GetIpAddress() : String; // 로컬IP 구하기
function GetxIpAddress(): String; // 외부IP 구하기
[ 함수 본문 ] 내부 IP 구하기
//
// Local IP 구하기
//
function GetIpAddress(): String;
type
pu_long = ^u_long;
var
varTWSAData: TWSAData;
varPHostEnt: PHostEnt;
varTInAddr: TInAddr;
namebuf: Array [0 .. 255] of AnsiChar;
begin
try
try
If WSAStartup($101, varTWSAData) <> 0 Then
Result := ''
Else
Begin
gethostname(namebuf, SizeOf(namebuf));
varPHostEnt := gethostbyname(namebuf);
varTInAddr.S_addr := u_long(pu_long(varPHostEnt^.h_addr_list^)^);
Result := inet_ntoa(varTInAddr);
End;
except
Result := '';
end;
finally
WSACleanup;
end;
end;
[ 함수 본문 ] 외부 IP 구하기
//
// 외부 IP구하기
//
function GetxIpAddress(): String;
var
IdHTTP: TIdHttp;
begin
Result := '';
// 외부 IP를 얻어 온다.
try
try
IdHTTP := TIdHttp.Create(NIL);
// 서버에 아래 프로그램을 업로드하고 호출하는 방식으로 외부 IP를 구할 수 있다.
// myip.asp 의 내용은
//<%
//Dim connect_IP
//connect_IP = request.ServerVariables("Remote_Addr")
//response.write connect_IP
//%>
// PHP로 작성하려면
//<?
//echo $_SERVER['REMOTE_ADDR']
//?>
// 아래 사이트는 내가 사용하는 사이트이고, 고쳐서 사용하기 바람
Result := IdHTTP.Get('http://www.customem.co.kr/myip.asp");
except
end
finally
IdHTTP.Free;
end;
end;
반응형