Click here to Skip to main content
11,437,397 members (41,515 online)
Click here to Skip to main content

Enumeration of Computer Names and their IP address

, 28 Jun 2002
Rate this:
Please Sign up or sign in to vote.
Retrieves the Computer names in a network and their corresponding IP addresses

Introduction

This code snippet allows you to retrieve the names of the computers in the network and their associated IP addresses. You can use this code to retrieve the host information in a network and also get the IP address of each pc. Its something similar to what you see in the Network Neighborhood list. All luck.

Things to do

  1. #include winsock2.h
  2. In the Menu, go to Project--Settings and in the Link tab, you can see a text box named Object/Library Modules. In that, add ws2_32.lib mpr.lib to the existing entries there. Those 2 libraries have to be added for this code snippet to compile without any linker errors.

Program listing

CString strTemp;
struct hostent *host;

struct in_addr *ptr; // To retrieve the IP Address 

DWORD dwScope = RESOURCE_CONTEXT;
NETRESOURCE *NetResource = NULL;
HANDLE hEnum;
WNetOpenEnum( dwScope, NULL, NULL, 
             NULL, &hEnum );

WSADATA wsaData;
WSAStartup(MAKEWORD(1,1),&wsaData);

if ( hEnum )
{
    DWORD Count = 0xFFFFFFFF;
    DWORD BufferSize = 2048;
    LPVOID Buffer = new char[2048];
    WNetEnumResource( hEnum, &Count, 
        Buffer, &BufferSize );
    NetResource = (NETRESOURCE*)Buffer;

    char szHostName[200];
    unsigned int i;

    for ( i = 0; 
        i < BufferSize/sizeof(NETRESOURCE); 
        i++, NetResource++ )
    {
        if ( NetResource->dwUsage == 
            RESOURCEUSAGE_CONTAINER && 
            NetResource->dwType == 
            RESOURCETYPE_ANY )
        {
            if ( NetResource->lpRemoteName )
            {
                CString strFullName = 
                    NetResource->lpRemoteName;
                if ( 0 == 
                    strFullName.Left(2).Compare("\\\\") )   
                    strFullName = 
                        strFullName.Right(
                            strFullName.GetLength()-2);

                gethostname( szHostName, 
                    strlen( szHostName ) );
                host = gethostbyname(strFullName);

                if(host == NULL) continue; 
                ptr = (struct in_addr *) 
                    host->h_addr_list[0];                    

                // Eg. 211.40.35.76 split up like this.             
                int a = ptr->S_un.S_un_b.s_b1;  // 211           
                int b = ptr->S_un.S_un_b.s_b2;  // 40
                int c = ptr->S_un.S_un_b.s_b3;  // 35
                int d = ptr->S_un.S_un_b.s_b4;  // 76

                strTemp.Format("%s -->  %d.%d.%d.%d",
                    strFullName,a,b,c,d);
                AfxMessageBox(strTemp);
            }
        }
    }

    delete Buffer;
    WNetCloseEnum( hEnum ); 
}

WSACleanup();

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

VGirish
Founder
India India
No Biography provided

Comments and Discussions

 
GeneralMy vote of 5 Pin
Puneet Kumar Bhatia15-Mar-11 23:18
memberPuneet Kumar Bhatia15-Mar-11 23:18 
Generalcomments Pin
Riceking9-Mar-05 7:45
memberRiceking9-Mar-05 7:45 
Questionhow??? Pin
Anonymous28-Oct-04 11:34
sussAnonymous28-Oct-04 11:34 
AnswerRe: how??? Pin
1of34-Mar-05 7:46
member1of34-Mar-05 7:46 
AnswerRe: how??? Pin
DavidCrow20-Mar-07 9:00
mvpDavidCrow20-Mar-07 9:00 
GeneralGeting information Pin
one_eddie4-Aug-04 1:57
memberone_eddie4-Aug-04 1:57 
i need to get info about (from inet-connected lan card):
1. ip address
2. net mask
3. check if DHCP is used
4. gateway IP and DNS IP adresses

on win 98 ??
GeneralCan't find all computer! Pin
Anonymous10-Feb-04 4:26
sussAnonymous10-Feb-04 4:26 
GeneralRe: Can't find all computer! Pin
Chuggy8826-Sep-08 1:04
memberChuggy8826-Sep-08 1:04 
Generalerror... Pin
fyh2119-Oct-03 23:28
memberfyh2119-Oct-03 23:28 
GeneralENUMERATING ALL DEVICES... Pin
borini31-Aug-03 0:52
memberborini31-Aug-03 0:52 
QuestionCan't get info on 'Workgroup' nodes? Pin
ob63515-Apr-03 11:27
memberob63515-Apr-03 11:27 
Generalwsock vs wsock2 Pin
NullStream29-Jun-02 2:37
memberNullStream29-Jun-02 2:37 
Generalvery nice althrough have some leaks Pin
sidewalk29-Jun-02 2:25
membersidewalk29-Jun-02 2:25 
Generalmultithreading Pin
meteor19-Jun-02 20:15
membermeteor19-Jun-02 20:15 
GeneralRe: multithreading Pin
Peter Hendrix23-Jul-02 4:41
sussPeter Hendrix23-Jul-02 4:41 
QuestionHow to get all the Subnet Mask.... Pin
Phan Tien Vu3-Jun-02 2:26
memberPhan Tien Vu3-Jun-02 2:26 
Questionhow to enum current login user Pin
Suresh M28-Feb-02 20:41
memberSuresh M28-Feb-02 20:41 
GeneralI Cant Browse the Computers' names Pin
Hrh24-Feb-02 4:34
memberHrh24-Feb-02 4:34 
QuestionHow to hadle CString? Pin
DMD1-Jul-01 2:44
memberDMD1-Jul-01 2:44 
AnswerRe: How to hadle CString? Pin
VGirish1-Jul-01 16:09
memberVGirish1-Jul-01 16:09 
GeneralMemory leak Pin
Anonymous1-Jun-01 3:21
memberAnonymous1-Jun-01 3:21 
GeneralTo Retrieve MAC Address Pin
Maria Jothi28-May-01 4:10
memberMaria Jothi28-May-01 4:10 
GeneralRe: To Retrieve MAC Address Pin
VGirish5-Jun-01 19:05
memberVGirish5-Jun-01 19:05 
GeneralRe: To Retrieve MAC Address Pin
Anonymous29-Aug-01 20:53
memberAnonymous29-Aug-01 20:53 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.150428.2 | Last Updated 29 Jun 2002
Article Copyright 2001 by VGirish
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid