int GetAllIP(char *title_M) { int i; int ret; char b000[150]; sock_to1=socket(AF_INET,SOCK_STREAM,IPPROTO_IP); if(sock_to1==SOCKET_ERROR) { write_buf("Create Socket Failed\n ",false);return 1; }
ret = WSAIoctl(sock_to1,SIO_ADDRESS_LIST_QUERY,NULL,0,recvbuf,1024*8-1,&dwBytesRet,NULL,NULL); if (ret == SOCKET_ERROR) {write_buf("get adaptor list failed.\n",false); return 1;}
slist=(SOCKET_ADDRESS_LIST*)&recvbuf; gethostname((char FAR *)title_M,255);
m_cListClient.InsertItem(m_dwIndex, &m_pEnumResource[i].lpRemoteName[2]);
TRACE("%s\n",&m_pEnumResource[i].lpRemoteName[2]);
sprintf(m_FullString,"%s",&m_pEnumResource[i].lpRemoteName[2]);
if (m_structHostent != NULL)
{
// 这个循环获取ip地址
for(int j = 0; m_structHostent->h_addr_list[j] != NULL; j++)
{
memcpy(&(dest.sin_addr), m_structHostent->h_addr_list[j],m_structHostent->h_length);
m_strTemp = inet_ntoa(dest.sin_addr);
m_cListClient.SetItemText(m_dwIndex,j + 1,m_strTemp);
sprintf(m_FullString,"%s %s",m_FullString,m_strTemp);
}
m_dwIndex = m_dwIndex + 1;
m_cListClient.UpdateWindow();
fprintf(m_hFile,"%s\n",m_FullString);
}
{
int i;
int ret;
char b000[150];
sock_to1=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if(sock_to1==SOCKET_ERROR) { write_buf("Create Socket Failed\n ",false);return 1; }
ret = WSAIoctl(sock_to1,SIO_ADDRESS_LIST_QUERY,NULL,0,recvbuf,1024*8-1,&dwBytesRet,NULL,NULL);
if (ret == SOCKET_ERROR) {write_buf("get adaptor list failed.\n",false); return 1;}
slist=(SOCKET_ADDRESS_LIST*)&recvbuf; gethostname((char FAR *)title_M,255);
if(slist->iAddressCount>=1) {
for(i=0;i<slist->iAddressCount;i++)
{
strcpy(b000,inet_ntoa(((SOCKADDR_IN*)slist->Address[i].lpSockaddr)->sin_addr));
printf(b000);
}
}
return 0;
}
char recvbuf[MAX_TEXT_SIZE];
SOCKET_ADDRESS_LIST *slist;
MAX_TEXT_SIZE应大一些,否刚,会取不出来