Да, возможно использовать TCP-сокет в приложении на языке C#. Для этого можно использовать классы из пространства имён System.Net.Sockets.
Чтобы получить IP-адрес сетевого адаптера, используемого WPF-приложением на языке C# с помощью EntityFramework при подключении к серверу СУБД MsSQL, можно воспользоваться классом System.Net.NetworkInformation.NetworkInterface. Вот пример кода:
```csharp
using System.Net.NetworkInformation;
// ...
public static string GetLocalIPAddress()
{
foreach (NetworkInterface networkInterface in NetworkInterface.GetAllNetworkInterfaces())
{
// Пропускаем неактивные адаптеры
if (networkInterface.OperationalStatus != OperationalStatus.Up)
continue;
// Пропускаем адаптеры, не поддерживающие IPv4
if (!networkInterface.Supports(NetworkInterfaceComponent.IPv4))
continue;
// Если нужно получить IP-адрес IPv6, используйте NetworkInterfaceComponent.IPv6
// if (!networkInterface.Supports(NetworkInterfaceComponent.IPv6))
// continue;
// Сначала получаем все IP-адреса адаптера
IPInterfaceProperties ipProperties = networkInterface.GetIPProperties();
foreach (IPAddressInformation ipAddressInfo in ipProperties.UnicastAddresses)
{
// Пропускаем адреса, не поддерживающие IPv4
if (ipAddressInfo.Address.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork)
continue;
return ipAddressInfo.Address.ToString();
}
}
return null;
}
```
Вы можете вызвать этот метод для получения IP-адреса сетевого адаптера, используемого вашим приложением. Например:
```csharp
string ipAddress = GetLocalIPAddress();
Console.WriteLine(ipAddress);
```
Помимо этого решения, также можно воспользоваться другими подходами, например, использовать класс Dns для получения имени хоста и связанного с ним IP-адреса.