using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; namespace LocalIPAddress { public class LocalIPAddress : INotifyPropertyChanged { #region INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } #endregion private ObservableCollection m_lstAddresses; public ObservableCollection Addresses { get { return m_lstAddresses; } set { if (m_lstAddresses != value) { m_lstAddresses = value; NotifyPropertyChanged("Addresses"); } } } public LocalIPAddress() { Addresses = new ObservableCollection(); RefreshList(); } public void RefreshList() { Addresses.Clear(); try { var host = Dns.GetHostEntry(Dns.GetHostName()); foreach (var ip in host.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork) { Addresses.Add(ip.ToString()); } } } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); } } } }