?? getipandhost.cpp
字號:
#include <windows.h>
#include <Winnetwk.h>
#include <stdio.h>
#pragma comment(lib, "Ws2_32.lib")
#pragma comment(lib, "Mpr.lib")
BOOL GetIpAddress(char *hostname)
{
HOSTENT *lpHost=NULL;
struct sockaddr_in dest;
lpHost = gethostbyname(hostname);
if (lpHost ==NULL)
{
printf("gethostbyname failed: %d", WSAGetLastError());
}
else
{
for(int i=0; lpHost->h_addr_list[i] != NULL ;i++)
{
memcpy(&(dest.sin_addr), lpHost->h_addr_list[i],
lpHost->h_length);
printf("IP address is: %s",
inet_ntoa(dest.sin_addr));
}
}
return TRUE;
}
BOOL WINAPI EnumerateFunc (LPNETRESOURCE lpnr)
{
HANDLE hEnum;
DWORD dwIndex,dwResult,dwBufferSize=16384,dwNumEntries =0xFFFFFFFF;// Enumerate all possible entries.
LPNETRESOURCE lpnrLocal; // Pointer to enumerated structures.
dwResult = WNetOpenEnum (
RESOURCE_GLOBALNET, //All resources on the network
RESOURCETYPE_ANY, //All resources
0, // Enumerate all resources.
lpnr, // The container to enumerate
&hEnum); // Handle to resource
if (dwResult != ERROR_SUCCESS)
return FALSE;
// Allocate memory for NETRESOURCE structures.
if (!(lpnrLocal = (LPNETRESOURCE) LocalAlloc (LPTR, dwBufferSize)))
printf("Not enough memory");
do
{
dwResult = WNetEnumResource (
hEnum, // Resource handle
&dwNumEntries, // Number of entries
lpnrLocal, // LPNETRESOURCE
&dwBufferSize); // Buffer size
if (dwResult == ERROR_SUCCESS)
{
for (dwIndex = 0; dwIndex < dwNumEntries; dwIndex++)
{
printf("\nRemote Name:%s Comment: %s", lpnrLocal[dwIndex].lpRemoteName,
lpnrLocal[dwIndex].lpComment);
GetIpAddress(lpnrLocal[dwIndex].lpRemoteName+2);
}
}
else if (dwResult != ERROR_NO_MORE_ITEMS)
break;
}
while(dwResult != ERROR_NO_MORE_ITEMS);
LocalFree (lpnrLocal);
WNetCloseEnum (hEnum);
return TRUE;
}
int main(int argc, char* argv[])
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err == 0 )
{
NETRESOURCE nr;
nr.dwScope = RESOURCE_GLOBALNET;
nr.dwType = RESOURCETYPE_DISK;
nr.dwUsage = RESOURCEUSAGE_CONTAINER;
nr.lpLocalName = TEXT("");
nr.lpRemoteName = TEXT("MyDomain");//這里改為你的域名
nr.lpComment = TEXT("");
nr.lpProvider = TEXT("");
EnumerateFunc (&nr);
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -