C#获取指定IP的主机名

以下代码在visiual studio 2003下调试通过。

方法一:使用GetHostByAddress函数

string   mystartIP = "222.206.84."; // IP地址

string   myip;

int   s;

string   name;


for(s = 1; s <= 125; s++) //IP地址开始和结束

    {

    myip = mystartIP   + s.ToString();

    //转换IP地址

    IPAddress   myscanip = IPAddress.Parse(myip);

    try

        {

        IPHostEntry   myscanhost = Dns.GetHostByAddress(myscanip);

        name = myscanhost.HostName.ToString();

        this.listBox1.Items.Add(myip   + "             "   + name);


        }

    catch

    {

    }

 

方法二:开启进程,调用nbtstat命令,通过分析该命令的执行结果获得指定IP的主机名。

 

public static string GetRemoteHostByNetBIOS(string clientIP)

        {
        string ip = clientIP;

        string dirResults = "";

        char[] hostResult;

        string Result;

        ProcessStartInfo psi  = new ProcessStartInfo();

        Process proc = new Process();

        psi.FileName = "nbtstat.exe";

        psi.Arguments = "-A " + ip;

        psi.UseShellExecute = false;

        psi.RedirectStandardInput = true;

        psi.RedirectStandardOutput = true;

        psi.RedirectStandardError = true;

        psi.RedirectStandardError = true;

        proc = Process.Start(psi);


        dirResults = proc.StandardOutput.ReadToEnd();

        proc.WaitForExit();

        hostResult = new char[(dirResults.IndexOf("<")-dirResults.IndexOf("-/r/r/n")-8)]; //后面4个空格加4个"-/r/r/n"字符

        dirResults.CopyTo(dirResults.IndexOf("-/r/r/n") + 8, hostResult, 0, dirResults.IndexOf("<") - dirResults.IndexOf("-/r/r/n") - 8);


        Result = new string(hostResult);

        return Result;

        }

转自:http://ttgoup.blog.hexun.com/14750646_d.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值