Purpose |
Translate a host name into a corresponding IP address. |
Syntax |
HOST ADDR [hostname$] TO ip& HOST ADDR(index&) TO ip& |
Remarks |
hostname$ is the name of a computer on the network or a domain name such as "powerbasic.com". If hostname$ is zero-length or not specified, the primary IP address of the current computer is returned. ip& receives the IP address of the specified host name. ip& may be a REGISTER or memory variable. It is possible for a computer to have more than one IP address. For example, if you have a network card in your computer, and you are dialed into the Internet using a modem, your computer will have two IP addresses. By using the indexed form of the statement: HOST ADDR(index&) TO ip& …you can retrieve the first IP address with index& = 1, the second with index& = 2, etc. If, on return, ip& contains zero (0), there are no further IP addresses to retrieve on that computer. A numeric IP address can be easily
converted to a dotted IP address
DIM p AS BYTE PTR HOST ADDR "localhost" TO ip& p = VARPTR(ip&) a$ = USING$("#_.#_.#_.#", @p, @p[1], @p[2], @p[3]) ' returns "127.0.0.1" |
Restrictions |
In order to obtain the IP address of the current computer, you must have at least one socket open, or you must first obtain the name of the computer by using the HOST NAME statement. |
See also |
|
Example |
HOST ADDR "powerbasic.com" TO ip& ' Primary IP
FUNCTION HowManyIPs() AS LONG DIM p AS BYTE PTR RESET index& DO HOST ADDR(index&+1) TO ip& IF ISTRUE ip& THEN INCR index& p = VARPTR(ip&) a$ = USING$("#_.#_.#_.#", @p, @p[1], @p[2], @p[3]) END IF LOOP UNTIL ip& = 0 FUNCTION = index& END FUNCTION |