Jump to content
  • Advertisement


This topic is now archived and is closed to further replies.


Local IP address

This topic is 5585 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Ok, this one really has me stumped. I can''t find any function that will return the IP address of the local machine. Someone once gave me some sample code that supposedly does it involving gethostname() and gethostbyname(), but crashes when I try to convert the data those functions return into something inet_ntoa() will accept. Is there an easy way to do this? Here''s the code I have now:
char HostName[256];
char IP[16];

gethostname(HostName, sizeof(HostName));
HOSTENT * HostData = gethostbyname(HostName);
sockaddr_in addr;
memcpy(&(LocalAddress.sin_addr.s_addr), HostData->h_addr,4);
strcpy(IP, inet_ntoa(LocalAddress.sin_addr));
MultiByteToWideChar(CP_ACP, NULL, IP, -1, LocalIP, RemoteCommIPLen);

You are not a real programmer until you end all your sentences with semicolons; (c) 2000 ROAD Programming
You are unique. Just like everybody else.
"Mechanical engineers design weapons; civil engineers design targets."
"Sensitivity is adjustable, so you can set it to detect elephants and other small creatures." -- Product Description for a vibration sensor


Share this post

Link to post
Share on other sites
Basically, you can''t. Or, more precisely, you can. To expand on that, your computer may have multiple IP addresses, depending on what interface you''re looking at. So it doesn''t make sense to think of "the computer''s IP address".

What, exactly, are you trying to do? Some more info about your problem would help us help you.

How appropriate. You fight like a cow.

Share this post

Link to post
Share on other sites
I dunno about sockets, but here is what the MSDN says in Platform SDK: Internet Protocol Helper:

// Link with IPHlpAPI.lib


#include <stdio.h>
#include <windows.h>
#include <iphlpapi.h>

main() {

FIXED_INFO * FixedInfo;
ULONG ulOutBufLen;
DWORD dwRetVal;

FixedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, sizeof( FIXED_INFO ) );
ulOutBufLen = sizeof( FIXED_INFO );

if( ERROR_BUFFER_OVERFLOW == GetNetworkParams( FixedInfo, &ulOutBufLen ) ) {
GlobalFree( FixedInfo );
FixedInfo = GlobalAlloc( GPTR, ulOutBufLen );

if ( dwRetVal = GetNetworkParams( FixedInfo, &ulOutBufLen ) ) {
printf( "Call to GetNetworkParams failed. Return Value: %08x\n", dwRetVal );
else {
printf( "Host Name: %s\n", FixedInfo -> HostName );
printf( "Domain Name: %s\n", FixedInfo -> DomainName );

printf( "DNS Servers:\n" );
printf( "\t%s\n", FixedInfo -> DnsServerList.IpAddress.String );

pIPAddr = FixedInfo -> DnsServerList.Next;
while ( pIPAddr ) {
printf( "\t%s\n", pIPAddr ->IpAddress.String );
pIPAddr = pIPAddr ->Next;
exit( 0 );

-solo (my site)

Share this post

Link to post
Share on other sites
Haha, 127.0.01 isn''t much help to me. I''m working off an iPAQ handheld PC, and I want it to display its IP on the screen so I don''t have to remember what it is when I want to connect to it with my laptop. As far as I''ve been able to tell, developing for Pocket PC is identical to working with any other Windows platform, even to the point where the emulator doesn''t really emulate much... it just passes the function calls through to the desktop''s OS. This iPAQ is going to be the brain of a robot, and the laptop is the remote control, thanks to 802.11b wireless LAN. Does this help? If worse comes to worse, I can just stick a post-it note on the iPAQ, but that''s not quite as clever as having it find it''s own IP.

Share this post

Link to post
Share on other sites
Guest Anonymous Poster

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!