using System.Collections.Generic;
public static class Extensions {
public static long GetIPAddressValue(this string clientIPAddress) {
if (string.IsNullOrEmpty(clientIPAddress)) {
throw new ArgumentNullException("clientIPAddress non dev'essere vuoto o null");
string[] ottetti = clientIPAddress.ToString().Split(new char[] { '.' });
foreach (var ottetto in ottetti)
if (!byte.TryParse(ottetto, out valoreOttetto)) {
public static string GetIPAddress(this long clientIPAddress) {
var ottetti = new string[4];
for (var i = ottetti.Length-1; i>=0; i--){
ottetti[i] = (clientIPAddress & 0xFF).ToString();
clientIPAddress = clientIPAddress >> 8;
return string.Join(".", ottetti);
public static void Main() {
string ip = "192.168.111.254";
long intero = ip.GetIPAddressValue();
Console.WriteLine("Ecco l'IP {0} convertito in intero: {1}", ip, intero);
string riconvertito = intero.GetIPAddress();
Console.WriteLine("Ed eccolo di nuovo riconvertito in stringa: {0}", riconvertito);