通过以下示例,InstallShield可以用WINSOCK获取IP地址,可将以下文件保存为tcpip.rul #defineWSADESCRIPTION_LEN256 #defineWSASYS_STATUS_LEN128 typedef WSAData begin INTwVersion; INTwHighVersion; charszDescription[WSADESCRIPTION_LEN+1]; charszSystemStatus[WSASYS_STATUS_LEN+1]; shortiMaxSockets; shortiMaxUdpDg; POINTERlpVendorInfo; end; WSADatastructWSAData; WSADataPOINTERpWSAData; typedefHostEnt begin POINTERph_name; POINTERph_aliases; shorth_addrtype; shorth_length; POINTERph_addr_list; end; HostEntstructHostEnt; HostEntPOINTERpHostEnt; SHORTnlen; NUMBERnIPNetAddr; NUMBERnVersion; STRINGszMsg; STRINGszDefault; STRINGszURL; STRINGszPath; NUMBERnRC; NUMBERnRC2; STRINGszHostName; STRINGszMYIPAddr; POINTERpWinSockReturn; typedefIPName begin STRINGszIPAddr[100]; end; IPNameLocalIPName; IPNamePOINTERpLocalIPName; typedefIPAddrList begin POINTERpIPAddr; end; IPAddrListstructIPAddrList; IPAddrListPOINTERpIPAddrList; typedefIPAddPtr begin LONGnIPAddr; end; IPAddPtrstructIPAddPtr; IPAddPtrPOINTERpIPAddPtr; POINTERpIN_Addr_Struct; prototypePOINTERwsock32.gethostbyname(BYREFSTRING); prototypePOINTERwsock32.gethostname(BYREFSTRING,NUMBER); prototypePOINTERwsock32.WSAStartup(INT,POINTER); prototypePOINTERwsock32.inet_ntoa(NUMBER); prototypePOINTERwsock32.WSACleanup(); prototypeintwsock32.WSAGetLastError(); program pWSAData=&structWSAData; nRC=UseDLL(\”wsock32.dll\”); pWSAData->wHighVersion=1; pWSAData->wVersion=1; nVersion=0x02000002;//0x01000001 pWinSockReturn=WSAStartup(nVersion,pWSAData); pWinSockReturn=gethostname(szHostName,100); pHostEnt=gethostbyname(szHostName); nlen=pHostEnt->h_length; pIPAddPtr=pHostEnt->ph_addr_list; pIPAddPtr=*pIPAddPtr; nIPNetAddr=*pIPAddPtr; //nIPNetAddr=pIPAddPtr->nIPAddr; pLocalIPName=inet_ntoa(nIPNetAddr); szMYIPAddr=pLocalIPName->szIPAddr; MessageBox(szMYIPAddr,INFORMATION); WSACleanup(); exit;
您可能感兴趣的文章:C语言WinSock学习笔记winsockfix网络协议修复工具WinSock Expert v0.6 beta1 汉化版 下载c语言网络编程-标准步骤(比较简单)c语言网络编程-标准步骤(改进版)c# socket网络编程接收发送数据示例代码C#开发之Socket网络编程TCP/IP层次模型、端口及报文等探讨Windows网络编程之winsock实现文件传输示例