using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
    class IPHostEntryTEST
    {
       public static void Main(string[] args)
        {
            if (args.Length == 1)
            {
                Console.WriteLine("Usage:GetDNSHostInfo hostname");
                return;
            }
            IPHostEntry results = new IPHostEntry();
               results=Dns.GetHostByName(args[0]);// 这一行提示 数组越界!            Console.WriteLine("Host Name:{0}"+results.HostName);
           //使用循环显示ip地址列表
            foreach (string alias in results.Aliases)
            {
                Console.WriteLine("alias:{0}"+alias);
            }
           //遍历地址列表
            foreach (IPAddress address in results.AddressList)
            {
                Console.WriteLine("Address:{0}"+address.ToString());
            }
        }
    }

解决方案 »

  1.   

    GetHostByName(x)
    这个方法贴出来
      

  2.   

    results.HostName=Dns.GetHostByName(args[0]);
      

  3.   

    args 是外部输入参数,用CSC编译这个程序之后,控制台输入即可。
      

  4.   

    if(args!=null&&args.Length!=0)
    {IPHostEntry results = new IPHostEntry();
       results=Dns.GetHostByName(args[0]);// 这一行提示 数组越界!Console.WriteLine("Host Name:{0}"+results.HostName);
       //使用循环显示ip地址列表
       foreach (string alias in results.Aliases)
       {
       Console.WriteLine("alias:{0}"+alias);
       }
       //遍历地址列表
       foreach (IPAddress address in results.AddressList)
       {
       Console.WriteLine("Address:{0}"+address.ToString());
       }
    }else
    {Console.WriteLine("消息:{0}"+"我了个去,无数据");
    return;}
     
      

  5.   

    你如果没有为args赋值,args被系统初始化,但是长度为0,所以args[0]就会越界。args.length =0
      

  6.   

    但是我是从控制台输入的内容啊  args[]先初始化还是 ..怎么解决呢?
      

  7.   

    args[]是启动参数,需要在启动前赋值,控制台输入使用:
    results = Dns.GetHostByName(Console.ReadLine());
      

  8.   

    class IPHostEntryTEST
      {
      public static void Main(string[] args)
      {
      if (args.Length == 0)  if (args.Length == 1)  {
      Console.WriteLine("Usage:GetDNSHostInfo hostname");
      return;
      }
      IPHostEntry results = new IPHostEntry();
      results=Dns.GetHostByName(args[0]);// 这一行提示 数组越界! Console.WriteLine("Host Name:{0}"+results.HostName);
      //使用循环显示ip地址列表
      foreach (string alias in results.Aliases)
      {
      Console.WriteLine("alias:{0}"+alias);
      }
      //遍历地址列表
      foreach (IPAddress address in results.AddressList)
      {
      Console.WriteLine("Address:{0}"+address.ToString());
      }
      }
      }
      

  9.   

    你把if条件改为args.Length<=1就行了