IPHostEntry 的问题 内有源码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void button1_Click(object sender, EventArgs e)
{
string ip = this.textBox1.Text;
IPHostEntry hostinfo = Dns.GetHostByName(textBox1.Text);
//textBox1.Text = Convert.ToString(hostinfo);
bool blnTest = false;
bool _Result = true;
Regex regex = new Regex( "^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$ ");
blnTest = regex.IsMatch(textBox1.Text);
if (blnTest == true)
{
string[] strTemp = this.textBox1.Text.Split(new char[] { '. ' }); // textBox1.Text.Split(new char[] { '. ' });
for (int i = 0; i < strTemp.Length; i++)
{
if (Convert.ToInt32(strTemp[i]) > 255)
{ //大于255则提示,不符合IP格式
MessageBox.Show( "不符合IP格式 ");
_Result = false;
}
}
}
else
{
//输入非数字则提示,不符合IP格式
MessageBox.Show( "不符合IP格式 ");
_Result = false;
}
host.Items.Add(textBox1.Text);
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
那里出错了 出来的总是是显示不出Dns的目标主机的信息 出现不是输入的ip就是system.iphostentry 这句话啊``
如果想要输入目标ip 就得目标电脑的各种信息是不是这样写的啊
或着反过来输入计算机名 怎么解析得到多个ip
[解决办法]
出错的是这句:
IPHostEntry hostinfo = Dns.GetHostByName(textBox1.Text);
这是微软的一个Bug, 它有时会错误解析你的HostName, 用回下面的方式吧:
IPHostEntry hostinfo = Dns.Resolve(textBox1.Text);