-3

私は IP アドレスを持っています: 192.168.1.1. しかし、私はそれを作りたい192168001001ですか?どうやってそれをするのですか?

4

7 に答える 7

3

私にとって、最もクリーンな方法はこれです:

直接の答え:

//String version
string sIP = "192.168.1.1";
string sOut = "";

foreach(string sPart in sIP.Split('.')){
   sOut = string.format("{0}{1:000}", sOut, sPart);
}

//IPAddress version
IPAddress oIP = new IPAddress("192.168.1.1");
string sOut = oIP.GetAddressBytes.ToString();

IPの解析/チェック/操作には常にIPAddressクラスを使用することに注意してください:)。IPv4 および IPv6 アドレスを使用できるはずだからです。

http://msdn.microsoft.com/en-us/library/system.net.ipaddress.aspx

于 2012-07-31T07:55:51.990 に答える
3

簡単:

var formattedIP = String.Concat("192.168.1.1".Split('.').Select(x => x.PadLeft(3, '0')));
于 2012-07-31T07:53:41.467 に答える
1
string sIp = "192.168.0.1";
StringBuilder sb = new StringBuilder();

sIp.Split('.').ToList().ForEach(u => sb.Append(u.ToString().PadLeft(3, '0')));

// sb.ToString(); contains the result
于 2012-07-31T07:51:46.353 に答える
1
string input = "192.168.1.1";
string[] split = input.Split(new[] { '.' }, StringSplitOptions.None);

string result = string.Join(string.Empty, split.Select(s => s.PadLeft(3, '0')));
于 2012-07-31T07:51:48.293 に答える
1
string str1 = "192.168.1.1";

string[] str = str1.Split('.');

for(int i = 0; i < str.Length; i++)
    str[i] = int.Parse(str[i]).ToString("000");

str1 = string.Join("", str);

現在str1含まれている"192168001001"

于 2012-07-31T07:52:35.030 に答える
1

これはそれを行います:

string ip = "192.168.12.1";
StringBuilder stringBuilder = new StringBuilder();
string[] array = ip.Split('.');

foreach (string subsection in array)
{
      if (subsection.Length < 2)
             stringBuilder.Append("00" + subsection);
      else if (subsection.Length < 3)
             stringBuilder.Append("0" + subsection);
      else
             stringBuilder.Append(subsection);
}
于 2012-07-31T08:02:56.327 に答える
0

これを試して

string FormatIP(string ip)
{
   string[] data = ip.Split('.');
   if (data.Length > 4)
      throw new Exception("Invalid IP address");
   List<string> finalIP = new List<string>();
   int intChunk;
   string temp;
   foreach (string chunk in data)
   {
       temp = chunk;
       if (temp.Length > 3 || int.TryParse(temp, out intChunk) == false || intChunk > 255)
           throw new Exception("Invalid IP address");
       while (temp.Length < 3)
           temp = "0" + temp;
       finalIP.Add(temp);
    }
    data = finalIP.ToArray();
    return string.Join(".", data);
}
于 2012-07-31T08:03:36.280 に答える