Network C#

using System;
using System.Collections.Generic;
using System.Net;
using System.Text;
class Util
{
    public static IEnumerable ForEach(this IEnumerable source, Action act)
    {
        foreach (T element in source) act(element);
        return source;
    }
    public static string GetIPAddress()
    {
        IPAddress ip = GetExternalIp();
        if (ip == null)
            return Dns.GetHostEntry(Dns.GetHostName()).HostName;
        return Dns.GetHostEntry(ip).HostName;
    }
    private static IPAddress GetExternalIp()
    {
        try
        {
            string whatIsMyIp = "http://www.whatismyip.com/faq/automation.asp";
            WebClient wc = new WebClient();
            string requestHtml = Encoding.UTF8.GetString(wc.DownloadData(whatIsMyIp));
            return IPAddress.Parse(requestHtml);
        }
        catch
        {
            return null;
        }
    }
}