C# 文本框只允许ip地址,在写入ip之前不进行验证#

C# 文本框只允许ip地址,在写入ip之前不进行验证#,c#,textbox,ip,C#,Textbox,Ip,我试图使一个文本框只允许IP地址,而不使用互联网验证。我将有一个“私人void textBox3_TextChanged”来完成这项工作。每次我输入时,它都会检查它是否有效。这就是为什么我希望它是快速的,并且只使用一个简单的本地代码来检查它是否有效,即0.0.0.0-255.255.255.255 首先,它不应该做任何事情,但是当一个ip被写入时,它将启动一个计时器,然后检查ip是否可以访问。 这样做的目的是,当IP被写入时,如果在大约4秒后IP无法访问,picturebox将变为红色,如果可以

我试图使一个文本框只允许IP地址,而不使用互联网验证。我将有一个“私人void textBox3_TextChanged”来完成这项工作。每次我输入时,它都会检查它是否有效。这就是为什么我希望它是快速的,并且只使用一个简单的本地代码来检查它是否有效,即0.0.0.0-255.255.255.255

首先,它不应该做任何事情,但是当一个ip被写入时,它将启动一个计时器,然后检查ip是否可以访问。 这样做的目的是,当IP被写入时,如果在大约4秒后IP无法访问,picturebox将变为红色,如果可以访问,它将变为绿色,然后停止,直到“textbox3\u 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;
    }

您可以使用下面提到的代码来验证IP添加

public bool IsValidIp(string addr)
{
    IPAddress ip;
    bool valid = !string.IsNullOrEmpty(addr) && IPAddress.TryParse(addr, out ip);
    return valid;
}

没有表现出你的努力,这似乎只是另一个“给我一个密码”的问题。你所说的“用不同的方式回答”是什么意思。这里有一种方式:网络表单?WinForms?IPv4?IPv6?我猜这有点像“给我一个密码”,但因为我已经搜索了一段时间,而且很累了,我还是发了一个问题。我编辑了这篇文章,因为解释不好,这没有回答我的问题