i just wondered; is it possible to get the IP address of localhost using MASM? Well i suppose it must be ... anyway, what API's would i need to take a look at to learn how to do this?
thanks. skud.
localhost is a psudonym for 127.0.0.1 and is usually assigned/associated in the Hosts file, but it may not be. :D It may be in the registry or defaulted in code unless overridden.
I never did test to see if the extension of the Hosts file matters. (search for "hosts", see also "Lmhost"
127.0.0.1 is a special loopback address.
Easy - you need to use the WinSock 1.1 API's to call gethostaddr etc. and this will enable you to get IP's and do internet related functions. Get the help/word doc on it either on win32asm or have a hunt around through the other links for the document.
Also there are demos of how to actually code it on win32asm and also follow the links to find demos elsewhere too. There is a mail client program on my site with src that can be used to work it out as well :
http://james.ezylink.net.au (called Simple Mailer)
James
SFineGan-
i know localhost is 127.0.0.1 :P
what i meant was the IP address of the computer the program is running on.
thanks anyway.
-James
thanks alot, i'll take a look at it.
ok. i have now written a little prog that gets the ip address of the local computer. however it returns the network ip address whether i am on the internet or not. how do i get my internet ip address? the way i get the ip address is by getting the computers name and then using that to use gethostbyname. in fact its probably easier with my code...
.386
.model flat, stdcall
option casemap:none
include C:\masm32\include\windows.inc
include C:\masm32\include\kernel32.inc
include C:\masm32\include\user32.inc
include C:\masm32\include\wsock32.inc
includelib C:\masm32\lib\user32.lib
includelib C:\masm32\lib\kernel32.lib
includelib C:\masm32\lib\wsock32.lib
.data
caption db "Current IP Address",0
errtxt db "Invalid Host Name!",0
wsaerrtxt db "WSAStartup ERROR",0
host db 128 dup (0)
IPAD dd ?
wsadata WSADATA <>
.Code
Main:
invoke WSAStartup,101h,ADDR wsadata
cmp eax,0
jne wsaerr
invoke GetComputerName,ADDR host,128
invoke gethostbyname,ADDR host
cmp eax,0
je error
mov eax,
mov eax,
mov eax,
mov IPAD,eax
invoke inet_ntoa,IPAD
invoke MessageBox,0,eax,ADDR caption,MB_OK
jmp Exit
error:
invoke MessageBox,0,ADDR errtxt,ADDR caption,MB_OK
jmp Exit
wsaerr:
invoke MessageBox,0,ADDR wsaerrtxt,ADDR caption,MB_OK
Exit:
invoke WSACleanup
invoke ExitProcess,0
End Main
skud: take a look at this post (quite old, code tags where not available yet :):
gethostbyname (Winsock).
Thomas
Ahoy,
If I don't tell the true, correct me.
Normaly our LocalHost is 127.0.0.1, it is a Loopback.
If we own more than one Network Interface Card (NIC)
adapter we have more than one IP address.
If a Network Interface Card (NIC) is avaible and a static
IP address is asigned, for example 192.168.1.20 (Class C),
this is the IP address of our LocalHost.
If we choose automatic assigned IP address and a DHCP Server
is not avaible (on win2k) Windows assign an APIPA address.
This one comes from a pool of reserved addresses.
The APIPA address range is 169.254.x.x.
For example if we get the IP address 169.254.100.15
it is an APIPA address, our Local Host.
On a Local NetWork for games we normaly use use
WINS NETBIOS and the 'lmhost, host' files.
In this case we assign a static address in files
which must be identical on every Pc.
If not, no playing.
But I'm not a player ;),
do you know Prof. Tim and his inc. machine ?
It runs fine on my P1 233 MHz. Ok....
A PPP connection (Internet) is also an Adapter.
On a Call by Call provider normaly we choose the automatic
assigned IP address, we get it from our provider.
At least I must say it is a long and damned story ...
You can download a net utility with source from my website :
http://www.geocities.com/ge2001
Thank you.
so long Test