2016-06-10 53 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