External Interfaces/API |
Example - Finding an Internet Protocol Address
The resolveip
function returns either the name or address of an IP (internet protocol) host. If you pass resolveip
a hostname, it returns the IP address. If you pass resolveip
an IP address, it returns the hostname. The function uses the Java API class java.net.InetAddress
, which enables you to find an IP address for a hostname, or the hostname for a given IP address, without making DNS calls.
resolveip
calls a static
method on the InetAddress
class to obtain an InetAddress
object. Then, it calls accessor methods on the InetAddress
object to get the hostname and IP address for the input argument. It displays either the hostname or the IP address, depending on the program input argument.
Description of resolveip
The major tasks performed by resolveip
are:
1. Create an InetAddress Object
Instead of constructors, the java.net.InetAddress
class has static
methods that return an instance of the class. The try
statement calls one of those methods, getByName
, passing the input
argument that the user has passed to resolveip
. The input argument can be either a hostname or an IP address. If getByName
fails, the catch
statement displays an error
message.
function resolveip(input) try address = java.net.InetAddress.getByName(input); catch error(sprintf('Unknown host %s.', input)); end
2. Retrieve the Hostname and IP Address
The example uses calls to the getHostName
and getHostAddress
accessor functions on the java.net.InetAddress
object, to obtain the hostname and IP address, respectively. These two functions return objects of class java.lang.String
, so we use the char
function to convert them to character arrays.
3. Display the Hostname or IP Address
The example uses the MATLAB strcmp
function to compare the input
argument to the resolved IP address. If it matches, MATLAB displays the hostname for the internet address. If the input does not match, MATLAB displays the IP address.
if strcmp(input,ipaddress) disp(sprintf('Host name of %s is %s', input, hostname)); else disp(sprintf('IP address of %s is %s', input, ipaddress)); end;
Running the Example
Here is an example of calling the resolveip
function with a hostname.
Here is a call to the function with an IP address.
Example - Reading a URL | Example - Communicating Through a Serial Port |