我试图让文本框只允许IP地址而无需使用互联网进行验证。我将拥有一个"私有的无效textBox3_TextChanged"做的工作。每次我输入时,都会检查它是否有效。这就是为什么我希望它快速,只使用一个简单的本地代码来检查它是否有效,这意味着0.0.0.0 - 255.255.255.255。
首先,它不应该做任何事情,但是当写入ip时,它将启动一个计时器,然后检查ip是否可达。 这样做的目的是,当写入IP时,如果在大约4秒后无法访问ip,则图片框将变为红色,如果它可以到达,它将变为绿色,然后停止直到" textbox3_TextChanged"
我尝试过像ping这样的东西,但如果没有输入任何内容就会崩溃:
private void timer1_Tick(object sender, EventArgs e)
{
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
options.DontFragment = false;
// Create a buffer of 32 bytes of data to be transmitted.
string data = "ping";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 120;
PingReply reply = pingSender.Send(textBox3.Text, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
pictureBox4.BackColor = Color.LimeGreen;
}
else
pictureBox4.BackColor = Color.Red;
}
答案 0 :(得分:1)
您可以使用下面提到的代码来验证IP ADD
public bool IsValidIp(string addr)
{
IPAddress ip;
bool valid = !string.IsNullOrEmpty(addr) && IPAddress.TryParse(addr, out ip);
return valid;
}