GetHost를 이용한 IP가져오기(10.5버전 이상용)GetHost를 이용한 IP가져오기(10.5버전 이상용)
Posted at 2010. 10. 11. 08:46 | Posted in PowerBuilder이전 글에 GetHost는 이전 버전용이라 사용할 수 없는 줄 알았는데, 사용이 가능하며
10.5버전에서도 GetHost()를 통해 새로 생긴 Byte타입으로 연산하면 도메인명을 통한 IP추출이 가능합니다.
External Funtion 선언
function int WSAStartup (uint UIVerionrequested, ref str_wsadata lpWSAdata) library "wsock32.DLL" alias for "WSAStartup;ansi"
function int WSACleanup() library "wsock32.DLL"
function int WSAGetLastError() library "wsock32.DLL"
function int gethostname(ref string name, int namelen) library "wsock32.DLL" alias for "gethostname;Ansi"
function string GetHost(string lpszhost,ref blob lpszaddress) library "pbws32.dll" alias for "GetHost;Ansi"
구조체 선언
str_wsadata
스크립트
String ls_ip, ls_host, ls_tmp
Blob{10} lb_host
Integer li_version, li_rc
str_wsadata lstr_wsadata
Byte lbt_host[10]
ls_host = Space(128)
li_version = 257
If WSAStartup(li_version, lstr_wsadata) = 0 Then
If GetHostName(ls_host, Len(ls_host)) < 0 Then
li_rc = WSAGetLastError()
Else
GetHost(ls_host, lb_host)
lbt_host[1] = byte(blobmid(lb_host, 1, 1))
lbt_host[2] = byte(blobmid(lb_host, 2, 1))
lbt_host[3] = byte(blobmid(lb_host, 3, 1))
lbt_host[4] = byte(blobmid(lb_host, 4, 1))
ls_ip = String(lbt_host[1]) + '.' + String(lbt_host[2]) + '.' + String(lbt_host[3]) + '.' + String(lbt_host[4])
li_rc = 0
End If
MessageBox("My IP", ls_ip)
Else
li_rc = WSAGetLastError()
End If
WSACleanup()
'PowerBuilder' 카테고리의 다른 글
화면전환 Tip입니다. (0) | 2010.10.11 |
---|---|
DW 및 각 컨트롤의 속성 리스트가 필요할때 (0) | 2010.10.11 |
데이타윈도우가 아닌 화면윈도우를 인쇄하는 방법 (0) | 2010.10.11 |
타원형 윈도우 만들기 (0) | 2010.10.11 |
2개 이상의 디비 접속 (0) | 2010.10.08 |