이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 18952|회답: 3

[윈폼] C#은 IP 주소를 생성할 IP 세그먼트를 지정합니다

[링크 복사]
게시됨 2015. 12. 14. 오후 3: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.         }  
코드 복사






이전의:C# WPF는 ZXing을 사용해 QR 코드를 생성합니다. ImageSource 소개
다음:두 자리 문자 배열의 입력은 출력이 이루어질 때 정렬됩니다
게시됨 2015. 12. 14. 오후 3:54:44 |
 집주인| 게시됨 2015. 12. 31. 오후 4:25:19 |
위에서 생성된 IP 주소에 오류가 있으면 다음 방법을 사용하세요

  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
코드 복사


게시됨 2016. 1. 2. 오후 3:11:56 |
배웠습니다, 공유해 주셔서 감사합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com