|
I want to get my Computer IP.How can I do it?
Agh
|
|
|
|
|
go to www.whatismyipaddress.com to see it at once.
includeh10
|
|
|
|
|
includeh10 wrote: go to www.whatismyipaddress.com to see it at once.
This will give you the public ip if you are behind a proxy.
-Prakash
|
|
|
|
|
He posted his question in the Visual C++ forum.
--
Pictures[^] from my Japan trip.
-- modified at 16:09 Sunday 1st January, 2006
|
|
|
|
|
The best way to grab a list of all the ip addresses attached to your local system is using the IPHelper[^] library. You'll need to include the IPHlpApi.h and winsock2.h header files, then add iphlpapi.lib and ws2_32.lib to your list of import libraries.
MIB_IPADDRTABLE *pIPAddrTable = NULL;
DWORD dwSize = 0;
DWORD dwRetVal = 0;
if (GetIpAddrTable(pIPAddrTable, &dwSize, 0) != ERROR_INSUFFICIENT_BUFFER )
{
printf( "Error getting buffer size." );
}
else
{
pIPAddrTable = ( MIB_IPADDRTABLE * ) malloc ( dwSize );
if ( (dwRetVal = GetIpAddrTable( pIPAddrTable, & dwSize, 0 ) ) != NO_ERROR )
{
printf("GetIpAddrTable failed.\n");
}
for( int i = 0; i < pIPAddrTable->dwNumEntries; i ++ )
{
in_addr add;
in_addr subnet;
ZeroMemory( & add, sizeof( in_addr ) );
ZeroMemory( & subnet, sizeof( in_addr ) );
add.S_un.S_addr = pIPAddrTable->table[ i ].dwAddr;
subnet.S_un.S_addr = pIPAddrTable->table[i].dwMask;
printf("IP Address: %s\n", inet_ntoa( add ) );
printf("IP Mask: %s\n\n", inet_ntoa( subnet ) );
}
free( pIPAddrTable );
}
Gavin Taylor
w: http://www.gavspace.com
-- modified at 12:11 Sunday 1st January, 2006
|
|
|
|
|
Hi,
This works for me,
CString sLocalIp;<br />
HOSTENT *hs = NULL;<br />
UCHAR ch[4] = {0};<br />
CHAR szHostName[50]={0};<br />
<br />
if ( SOCKET_ERROR == ::gethostname((LPSTR)(LPCTSTR)szHostName, 50) )<br />
{<br />
return GetLastError();<br />
}<br />
<br />
<br />
hs = gethostbyname((LPSTR)(LPCTSTR)szHostName); <br />
<br />
if ( hs == NULL )<br />
{<br />
return GetLastError();<br />
}<br />
<br />
<br />
memcpy(ch, hs->h_addr,4); <br />
<br />
sLocalIp.Format("%d.%d.%d.%d", ch[0], ch[1], ch[2], ch[3]);
Hope this is also correct method.(((??)))
Jetli
Constant Thing In World Is Change.
|
|
|
|
|
The problem with that method is that it will only pullback one IP, the question was how do you retrieve the IP address for my local computer, it's quite possible to have several NIC's all with several IP addresses. The server sitting under my desk has 3 different IP's for instance.
But yeah, your way does work aswell
Gavin Taylor
w: http://www.gavspace.com
-- modified at 7:59 Monday 2nd January, 2006
|
|
|
|
|
Thats True
Many thanks Gavin.
Jetli
Constant Thing In World Is Change.
|
|
|
|
|
Open a command window.
go to Start->Run, type in "cmd" and click OK
In Command window type in "ipconfig" click ENTER key
You can see the IP address here.
|
|
|
|
|
He posted his question in the Visual C++ forum.
--
Pictures[^] from my Japan trip.
-- modified at 16:10 Sunday 1st January, 2006
|
|
|
|
|
I think he would like to get ipaddress using Visual C++ code instead of go cmd line.
|
|
|
|
|
mehrdadov wrote: I want to get my Computer IP.How can I do it?
gethostbyaddr
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
Hi,
I got 3 files, main.cpp, aaa.h, aaa.cpp
+ aaa.h is blank
+ in aaa.cpp
<br />
#include "aaa.h"<br />
static float asd;<br />
+ in main.cpp
<br />
#include "aaa.h"<br />
int main(){<br />
asd=1;<br />
return 0;<br />
}<br />
I do this and compiler said asd is undefined in main.cpp
|
|
|
|
|
|
I change static float asd; to extern float asd; but it still doesn't work, I did something wrong?
|
|
|
|
|
You need to declare the variable normally in one file and in all other files where you need access to it you need to declare it exactly the same, just with the extern keyword in front of it.
In aaa.cpp, declare:
float asd = 0.0f;
In main.cpp, declare:
extern float asd;
Best regards
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
|
static is the exact opposite of extern .
--
Pictures[^] from my Japan trip.
|
|
|
|
|
Using static as the opposite of extern is deprecated. Anonymous namespaces are now the preferred mechanism for achieving this effect. ie.
namespace
{
int a;
}
I believe this change was made because the extern keyword was overloaded too much (had too many meanings).
Steve
|
|
|
|
|
There's a downside to this though. Eventhough you put the variable into an anonymous namespace, the name will still be around in the exported symboltable, although mangled to ensure uniqueness. At least that's how I understood an article (I think it was one of Sutter's). One can only hope that static library archivers and DLL linkers will remove the anonymous symbol table entries from the final symbol table(s). God knows what happens if there's a name collision.
|
|
|
|
|
I've never had any problems with name collision (using anonymous namespaces) in VC6.
Steve
|
|
|
|
|
I'm a beginner programmer with a question about hashtables.
when I create a hashtable like so:
Hashtable *hashTable = new Hashtable;
Do I need to delete the hastahble in my destructor?
It was my understanding from the stuff I read that you should always have a DELETE for every NEW that you use.
But when I try to delete the hashtable, I receive an error message about an illegal delete.
So do I need to delete them somehow to avoid a memory leak?
Thanks,
Jody Blau
|
|
|
|
|
jblau wrote: It was my understanding from the stuff I read that you should always have a DELETE for every NEW that you use.
That's right, if you are programming in C++! But I have a suspicious feeling that you are using C#, or a language that uses the .NET framework. These manages there own memory stack/heap, so deletes are redundant.
I Dream of Absolute Zero
|
|
|
|
|
Hold it right there! Delete is not redundant. Mangaged just means that if you do not clean up after your self, then it will eventualy be clean up for you. Not cleaning up after your self, is a very bad idea.
INTP
Every thing is relative...
|
|
|
|
|
Are you using normal or managed C++?
Are you getting a compiler error? Post your code and the errors.
--Mike--
Visual C++ MVP
LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ
"Just because the box has 2 gigabytes of memory doesn't mean you get to use it all!"
-- Rico Mariani, CLR perf guy
|
|
|
|