شركة التطبيقات المتكاملة لتصميم النظم البرمجية الخاصة ش.ش.و.

Integrated Applications Programming Company

Skip Navigation Links

Public general use code classes and xml files that we've compiled and used over the years:

IP support class of Next Generation Network'a (NGN's) business model.

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Text.RegularExpressions;
   4:   
   5:  namespace Ia.Ngn.Cl.Model.Business
   6:  {
   7:      ////////////////////////////////////////////////////////////////////////////
   8:   
   9:      /// <summary publish="true">
  10:      /// IP support class of Next Generation Network'a (NGN's) business model.
  11:      /// </summary>
  12:      /// 
  13:      /// <remarks> 
  14:      /// Copyright © 2018-2019 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
  15:      ///
  16:      /// This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
  17:      /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
  18:      ///
  19:      /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  20:      /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  21:      /// 
  22:      /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
  23:      /// 
  24:      /// Copyright notice: This notice may not be removed or altered from any source distribution.
  25:      /// </remarks> 
  26:      public static class Ip
  27:      {
  28:          ////////////////////////////////////////////////////////////////////////////
  29:   
  30:          /// <summary>
  31:          ///
  32:          /// </summary>
  33:          public static int IpToDec(string s)
  34:          {
  35:              return HexToDec(IpToHex(s));
  36:          }
  37:   
  38:          ////////////////////////////////////////////////////////////////////////////
  39:   
  40:          /// <summary>
  41:          ///
  42:          /// </summary>
  43:          public static string IpToHex(string ip)
  44:          {
  45:              string h;
  46:              Regex regex;
  47:              Match m;
  48:   
  49:              regex = new Regex(@"(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})");
  50:   
  51:              m = regex.Match(ip);
  52:   
  53:              if (m.Success)
  54:              {
  55:                  h = DecToHex(int.Parse(m.Groups[1].Captures[0].Value)) + DecToHex(int.Parse(m.Groups[2].Captures[0].Value)) + DecToHex(int.Parse(m.Groups[3].Captures[0].Value)) + DecToHex(int.Parse(m.Groups[4].Captures[0].Value));
  56:              }
  57:              else h = string.Empty;
  58:   
  59:              return h;
  60:          }
  61:   
  62:          ////////////////////////////////////////////////////////////////////////////
  63:   
  64:          /// <summary>
  65:          ///
  66:          /// </summary>
  67:          public static string DecToHex(int dec)
  68:          {
  69:              uint uiDecimal = 0;
  70:              string hex;
  71:   
  72:              try
  73:              {
  74:                  // convert text string to unsigned integer
  75:                  uiDecimal = checked((uint)System.Convert.ToUInt32(dec));
  76:   
  77:                  hex = String.Format("{0:x2}", uiDecimal);
  78:              }
  79:              catch (System.OverflowException)
  80:              {
  81:                  // Show overflow message and return
  82:                  hex = string.Empty;
  83:              }
  84:   
  85:              return hex;
  86:          }
  87:   
  88:          ////////////////////////////////////////////////////////////////////////////
  89:   
  90:          /// <summary>
  91:          ///
  92:          /// </summary>
  93:          public static int HexToDec(string hex)
  94:          {
  95:              // To hold our converted unsigned integer32 value
  96:              uint dec;
  97:   
  98:              try
  99:              {
 100:                  // Convert hex string to unsigned integer
 101:                  dec = System.Convert.ToUInt32(hex, 16);
 102:              }
 103:              catch (System.OverflowException)
 104:              {
 105:                  // Show overflow message and return
 106:                  return 0;
 107:              }
 108:   
 109:              return (int)dec;
 110:          }
 111:   
 112:          ////////////////////////////////////////////////////////////////////////////
 113:   
 114:          /// <summary>
 115:          ///
 116:          /// </summary>
 117:          public static string DecToIp(int i)
 118:          {
 119:              return HexToIp(DecToHex(i));
 120:          }
 121:   
 122:          ////////////////////////////////////////////////////////////////////////////
 123:   
 124:          /// <summary>
 125:          ///
 126:          /// </summary>
 127:          public static string HexToIp(string h)
 128:          {
 129:              string s, s1, s2, s3, s4;
 130:   
 131:              h = h.PadLeft(8, '0');
 132:   
 133:              s1 = h.Substring(0, 2);
 134:              s2 = h.Substring(2, 2);
 135:              s3 = h.Substring(4, 2);
 136:              s4 = h.Substring(6, 2);
 137:   
 138:              s = HexToDec(s1) + "." + HexToDec(s2) + "." + HexToDec(s3) + "." + HexToDec(s4);
 139:   
 140:              return s;
 141:          }
 142:   
 143:          ////////////////////////////////////////////////////////////////////////////    
 144:          ////////////////////////////////////////////////////////////////////////////    
 145:      }
 146:   
 147:      ////////////////////////////////////////////////////////////////////////////
 148:      ////////////////////////////////////////////////////////////////////////////   
 149:  }