2017-10-16 2 views
0

컴퓨터 과학 수업에 프로그램을 쓰고 있는데 컴퓨터의 공용 IPv4 주소를 얻으려고 할 때 오류가 발생했습니다. 그러나IPv4 주소를 얻으려고 시도 할 때 VB에서 SSL/TLS 연결을 만들 수 없습니다.

tboxPublicIPv4.Text = GetMyIP().ToString 

, 그것이 내가이 오류가 텍스트 상자에 IPv4 주소를 쓰려고 : 이것은 다음이 코드를 사용하여

Private Function GetMyIP() As Net.IPAddress 
    Using wc As New Net.WebClient 

     Return Net.IPAddress.Parse(Encoding.ASCII.GetString(wc.DownloadData("http://tools.feron.it/php/ip.php"))) 


    End Using 
End Function 

라고 :

내 코드입니다

An unhandled exception of type 'System.Net.WebException' occurred in System.dll 

Additional information: The request was aborted: Could not create SSL/TLS secure channel. 

어떤 도움을 주시면 감사하겠습니다. 고맙습니다.

답변

1

호출중인 URL이 https로 리디렉션되고 있으며 적어도 TLS 1.1이 필요합니다.

보안 프로토콜을 ServicePointManager.SecurityProtocol으로 설정하여 012.WebClient에 TLS 1.1 또는 TLS 1.2을 사용하도록 설정할 수 있습니다.

또한 다운로드 한 데이터를 문자열로 변환하는 대신 DownloadString을 사용할 수 있습니다.
Try/Catch 안에 포장합니다.

Function GetMyIP() As Net.IPAddress 
    Using wc As New Net.WebClient 
     ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 

     Try 
      Return Net.IPAddress.Parse(wc.DownloadString("https://tools.feron.it/php/ip.php")) 
     Catch ex As Exception 
      Return New Net.IPAddress(0) 
     End Try 
    End Using 
End Function 

.NET 4.0 supports up to TLS 1.0 while .NET 4.5 or higher supports up to TLS 1.2
For reference:

+0

나는이 밖으로 시도 당신에게 내가 지금 "개체의 인스턴스로 설정되지 않았습니다 개체 참조"의 추가 정보와 System.NullReferenceException을 얻고있다 – IsaSca

+0

감사합니다. 이것은 36 행에서 발생합니다. tboxPublicIPv4.Text = GetmyIP(). ToString – IsaSca