Мое программное обеспечение сохраняет информацию тремя различными способами в зависимости от типа подключения к базе данных (1-Local/2-Network/3-Internet).Определение глобального IP-адреса в той же сети vb.net, C#
Я могу узнать тип подключения к базе данных в зависимости от имени сервера из строки подключения.
Первая проблема, которая была решена, заключается в том, что клиент набирает глобальный адрес вместо ввода Localhost
на серверной машине.
Я использовал эту функцию, чтобы проверить, если адрес принадлежит к той же машине или нет:
Public Function IsLocalIpAddress(host As String) As Boolean
Try
' get host IP addresses
Dim hostIPs As Net.IPAddress() = Net.Dns.GetHostAddresses(host)
' get local IP addresses
Dim localIPs As Net.IPAddress() = Net.Dns.GetHostAddresses(Net.Dns.GetHostName())
' test if any host IP equals to any local IP or to localhost
For Each hostIP As Net.IPAddress In hostIPs
' is localhost
If Net.IPAddress.IsLoopback(hostIP) Then
Return True
End If
' is local address
For Each localIP As Net.IPAddress In localIPs
If hostIP.Equals(localIP) Then
Return True
End If
Next
Next
Catch
End Try
Return False
End Function
Но когда он печатает глобальный IP-с другого компьютера в той же сети, программное обеспечение распознает подключение как (Интернет), not (Network)
Так что мне нужно что-то сказать мне, что этот глобальный ip находится в той же сети, чтобы мое программное обеспечение правильно справилось с этим подключением.