Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 18952|Odgovoriti: 3

[WinForm] C# določa IP segment za generiranje IP naslova

[Kopiraj povezavo]
Objavljeno na 14. 12. 2015 15:01:40 | | | |


  1. private void button1_Click(object sender, EventArgs e)  
  2.         {  
  3.             string StartIp = "";  
  4.             string EndIp = "";  
  5.             StartIp = Startinput.Text;  
  6.             EndIp = Endinput.Text;  
  7.             uint iStartip = ipTint(StartIp);  
  8.             uint iEndIp = ipTint(EndIp);  
  9.             //string ip_result="";  
  10.             StringBuilder ip_result=new StringBuilder();  
  11.             if (iEndIp >= iStartip)  
  12.             {  
  13.                 for (uint ip = iStartip; ip <= iEndIp; ip++)  
  14.                 {  
  15.                     ip_result.Append(intTip(ip)).Append("\r\n");  
  16.                     //ip_result = ip_result + intTip(ip)+"\r\n";  
  17.                 }  
  18.                 resultTextBox.Text = ip_result.ToString();   //RichTextBox  
  19.             }  
  20.             else  
  21.             {  
  22.                 MessageBox.Show("天啊,起始ip居然比终止ip还大");  
  23.             }  
  24.         }  
  25.         public static uint ipTint(string ipStr)  
  26.         {  
  27.             string[] ip = ipStr.Split('.');  
  28.             uint ipcode = 0xFFFFFF00 | byte.Parse(ip[3]);  
  29.             ipcode = ipcode & 0xFFFF00FF | (uint.Parse(ip[2]) << 0x8);  
  30.             ipcode = ipcode & 0xFF00FFFF | (uint.Parse(ip[1]) << 0xF);  
  31.             ipcode = ipcode & 0x00FFFFFF | (uint.Parse(ip[0]) << 0x18);  
  32.             return ipcode;  
  33.         }  
  34.         public static string intTip(uint ipcode)  
  35.         {  
  36.             byte a = (byte)((ipcode & 0xFF000000) >> 0x18);  
  37.             byte b = (byte)((ipcode & 0x00FF0000) >> 0xF);  
  38.             byte c = (byte)((ipcode & 0x0000FF00) >> 0x8);  
  39.             byte d = (byte)(ipcode & 0x000000FF);  
  40.             string ipStr = string.Format("{0}.{1}.{2}.{3}", a, b, c, d);  
  41.             return ipStr;  
  42.         }  
Kopiraj kodo






Prejšnji:C# WPF uporablja ZXing za generiranje QR kod Uvod v ImageSource
Naslednji:Vhod dvomestne znakovne matrike se razvrsti, ko je izhod narejen
Objavljeno na 14. 12. 2015 15:54:44 |
 Najemodajalec| Objavljeno na 31. 12. 2015 16:25:19 |
Če je v zgoraj generiranem IP naslovu napaka, uporabite naslednjo metodo

  1. #region ip转换
  2.         /// <summary>
  3.         /// ip转成long
  4.         /// </summary>
  5.         /// <param name="ip"></param>
  6.         /// <returns></returns>
  7.         public static long IpToInt(string ip)
  8.         {
  9.             char[] separator = new char[] { '.' };
  10.             string[] items = ip.Split(separator);
  11.             return long.Parse(items[0]) << 24
  12.                     | long.Parse(items[1]) << 16
  13.                     | long.Parse(items[2]) << 8
  14.                     | long.Parse(items[3]);
  15.         }
  16.         /// <summary>
  17.         /// long转成ip
  18.         /// </summary>
  19.         /// <param name="ipInt"></param>
  20.         /// <returns></returns>
  21.         public static string IntToIp(long ipInt)
  22.         {
  23.             StringBuilder sb = new StringBuilder();
  24.             sb.Append((ipInt >> 24) & 0xFF).Append(".");
  25.             sb.Append((ipInt >> 16) & 0xFF).Append(".");
  26.             sb.Append((ipInt >> 8) & 0xFF).Append(".");
  27.             sb.Append(ipInt & 0xFF);
  28.             return sb.ToString();
  29.         }
  30.         #endregion
Kopiraj kodo


Objavljeno na 2. 01. 2016 15:11:56 |
Sem se naučil, hvala, ker si delil
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com