2016-06-10 137 views
-2

我想使一个文本框只允许IP地址没有验证使用互联网。我将会有一个“私人无效的textBox3_TextChanged”来完成这项工作。每次输入时,它都会检查它是否有效。这就是为什么我希望它很快,只使用简单的本地代码来检查它是否有效,意思是0.0.0.0 - 255.255.255.255。文本框只允许IP地址无需验证,直到IP被写入C#

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

没有显示你的努力,这似乎只是一个_'gimme TEH codez'_种问题 – Steve

+0

Wh你的意思是“以不同的方式回答”。 – Explisam

+0

这里有一种方法:http://www.regextester.com/22 –

回答

1

您可以使用下面所提到的代码来验证IP地址

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

由于错误的解释我编辑了这篇文章,但这并没有回答我的问题 – KrisPus