您好,登錄后才能下訂單哦!
題目:要求計算連續的IP地址。
舉例:起始IP為192.168.2.2,IP總個數為3,那么要求得的所有IP的為192.168.2.2,192.168.2.3,192.168.2.4。再舉個例子,起始IP為192.168.2.253,IP總個數為5那么要求得的所有IP為192.168.2.253,192.168.2.254,192.168.2.255,192.168.3.0,192.168.3.1。
按照傳統的解法可以這么做:
static void Main(string[] args) { string ip = "192.168.2.253";//起始IP int count = 5;//要計算連續IP的個數 var ipValue = BitConverter.ToUInt32(IPAddress.Parse(ip).GetAddressBytes().Reverse().ToArray(), 0); for (uint i = 0; i < count; i++) { IPAddress newIp = IPAddress.Parse((ipValue + i).ToString()); Console.WriteLine(newIp); } }
那如果我們用linq稍微改造一下,可以這么干:
static void Main(string[] args) { string ip = "192.168.2.253";//起始IP int count = 5;//要計算連續IP的個數 var ipValue = BitConverter.ToUInt32(IPAddress.Parse(ip).GetAddressBytes().Reverse().ToArray(), 0); var newIps = from p in Enumerable.Range(0, count) let newIp = ipValue + p select new { IP = IPAddress.Parse(newIp.ToString()) }; foreach (var newIp in newIps) { Console.WriteLine(newIp.IP); } }
答案:
192.168.2.253
192.168.2.254
192.168.2.255
192.168.3.0
192.168.3.1
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。