|
|
C++ Name Resolution Program Example
Create a new CLR console application and you can use ResolveNameChap6CP as the project and solution names if you want.
Add the following code. |
|
// ResolveNameChap6CP.cpp : main project file. /// <summary> /// This sample is designed to resolve a name using DNS forward lookup /// techniques and demonstrates how to do this using the .Net Framework /// class System.Net.Dns. To run this application, simply provide a name /// to resolve as a command line parameter. If the name is found in DNS, /// the program will print out the primary host name along with all IP /// addresses that are associated with the name. The program will also /// print any alias names that are associated with the name being queried. /// </summary>
#include "stdafx.h"
using namespace System; using namespace System::Net; using namespace System::Net::Sockets;
/// <summary> /// The main entry point for the application. /// </summary> [STAThread] int main(array<System::String ^> ^args) { if (args->Length < 1) { Console::WriteLine("Usage: Executable_file_name <name to resolve>"); Console::WriteLine("Example: Executable_file_name www.yahoo.com"); return 0; }
try { IPHostEntry^ IPHost = Dns::GetHostEntry(args[0]->ToString());
// Print out the host name that was queried Console::WriteLine("The primary host name is: " + IPHost->HostName->ToString());
// Print out any aliases that are found if (IPHost->Aliases->Length > 0) { Console::WriteLine("Aliases found are:"); for each (String^ Alias in IPHost->Aliases) { Console::WriteLine(Alias); } } Console::WriteLine("No Aliases found..."); Console::WriteLine("IP addresses found are:");
int IPv4Count = 0; int IPv6Count = 0;
// Print out all the IP addresses that are found Console::WriteLine("\nPrinting out all the found IP addresses..."); for each (IPAddress^ Address in IPHost->AddressList) { if (Address->AddressFamily == AddressFamily::InterNetwork) { IPv4Count++; Console::WriteLine("IPv4 Address #" + IPv4Count.ToString() + " is " + Address->ToString()); } else if (Address->AddressFamily == AddressFamily::InterNetworkV6) { IPv6Count++; Console::WriteLine("IPv6 Address #" + IPv6Count.ToString() + " is " + Address->ToString()); } } } catch (Exception^ e) { Console::WriteLine("GetHostEntry() failed with error: " + e->Message); } return 0; } |
Build and run the project. The following are the output samples.


Create a new console application project. You can use the project and solution name as shown in the following Figure if you want.

Add the following code.
|
using System; using System.Net; using System.Net.Sockets;
namespace ResolveNameChap6CS { /// <summary> /// This sample is designed to resolve a name using DNS forward lookup /// techniques and demonstrates how to do this using the .Net Framework /// class System.Net.Dns. To run this application, simply provide a name /// to resolve as a command line parameter. If the name is found in DNS, /// the program will print out the primary host name along with all IP /// addresses that are associated with the name. The program will also /// print any alias names that are associated with the name being queried. /// </summary> class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("Usage: Executable_file_name <name to resolve>"); return; }
try { IPHostEntry IPHost = Dns.GetHostEntry(args[0].ToString()); // Print out the host name that was queried Console.WriteLine("The primary host name is: " + IPHost.HostName.ToString()); // Print out any aliases that are found if (IPHost.Aliases.Length > 0) { Console.WriteLine("Aliases found are:"); foreach (string Alias in IPHost.Aliases) { Console.WriteLine(Alias); } } Console.WriteLine("No Aliases found..."); Console.WriteLine("IP addresses found are:");
int IPv4Count = 0; int IPv6Count = 0;
// Print out all the IP addresses that are found Console.WriteLine("Printing out all the found IP addresses..."); foreach (IPAddress Address in IPHost.AddressList) { if (Address.AddressFamily == AddressFamily.InterNetwork) { IPv4Count++; Console.WriteLine("IPv4 Address #" + IPv4Count.ToString() + " is " + Address.ToString()); } else if (Address.AddressFamily == AddressFamily.InterNetworkV6) { IPv6Count++; Console.WriteLine("IPv6 Address #" + IPv6Count.ToString() + " is " + Address.ToString()); } } } catch (Exception e) { Console.WriteLine("GetHostEntry() failed with error: " + e.Message); } } } } |
The following are the sample outputs.

![]() |
|
Create a new console application project. You can use the project and solution name as shown in the following Figure if you want.

Add the following code.
|
Imports System Imports System.Net Imports System.Net.Sockets ' This sample is designed to resolve a name using DNS forward lookup ' techniques and demonstrates how to do this using the .Net Framework ' class System.Net.Dns. To run this application, simply provide a name ' to resolve as a command line parameter. If the name is found in DNS, ' the program will print out the primary host name along with all IP ' addresses that are associated with the name. The program will also ' print any alias names that are associated with the name being queried. Module Module1
Sub Main() ' Parse command line arguments if any Dim args As String() = Environment.GetCommandLineArgs() If (args.Length < 2) Then Console.WriteLine("Usage: Executable_file_name <name to resolve>") Exit Sub End If
Try Dim IPHost As IPHostEntry = Dns.GetHostEntry(args(1).ToString())
Console.WriteLine("GetHostEntry() is OK...") ' Print out the host name that was queried Console.WriteLine("The primary host name is: " + IPHost.HostName.ToString()) ' Print out any aliases that are found If (IPHost.Aliases.Length > 0) Then Console.WriteLine("Aliases found are:") Dim CurAlias As String For Each CurAlias In IPHost.Aliases Console.WriteLine(CurAlias) Next End If
Console.WriteLine("No Aliases found...") Console.WriteLine("IP addresses found are:")
Dim IPv4Count As Integer = 0 Dim IPv6Count As Integer = 0
' Print out all the IP addresses that are found Console.WriteLine("Printing out all the found IP addresses...")
Dim Address As IPAddress
For Each Address In IPHost.AddressList If (Address.AddressFamily = AddressFamily.InterNetwork) Then IPv4Count += 1 Console.WriteLine("IPv4 Address #" + IPv4Count.ToString() + " is " + Address.ToString()) ElseIf (Address.AddressFamily = AddressFamily.InterNetworkV6) Then IPv6Count += 1 Console.WriteLine("IPv6 Address #" + IPv6Count.ToString() + " is " + Address.ToString()) End If Next Catch e As Exception Console.WriteLine("GetHostEntry() failed with error: " + e.Message) End Try End Sub End Module |
The following are the sample outputs.

