En .NET, c'est possible et simple. Je l'ai mis en œuvre sur mon site.
Disons que votre site a une adresse IP externe de 192.168.0.5, pour les besoins de la discussion. Adresse IP TOR réelle au moment de la publication : 95.215.44.97
Imports System.Net
Imports System.Net.Sockets
Imports System.Web
Private Function IsTorExitNode(sIP As String) As Boolean
' Reverse your IP (97.44.215.95) then pass to the string, I have just created it as one for this example
Try
Dim strTor As String = "97.44.215.95.80.5.0.168.192.ip-port.exitlist.torproject.org"
Dim host As IPHostEntry = Dns.GetHostEntry(strTor)
If host.AddressList.Length = 0 Then
Return False
Else
If host.AddressList(0).ToString() = "127.0.0.2" Then
Return True
Else
Return False
End If
End If
Catch ex As SocketException
Return False
End Try
End Function
Ventilation
Adresse IP inversée : 97.44.215.95
Port : 80
Adresse IP inversée : (l'adresse IP de votre site externe)
Si l'adresse est un TorExitNode, il retournera 127.0.0.2.
Dans votre fichier Global.asax, vous pouvez utiliser l'Application_Start pour vérifier si l'adresse IP renvoie vrai et ensuite les rediriger loin de votre site :
If IsTorExitNode("97.44.215.95") = True Then Response.Redirect("http://www.google.co.uk")
Maintenant, dès qu'ils arrivent sur votre site, ils sont redirigés ailleurs.
TOR a une liste de Adresses IP Mais il est évident qu'ils changent tout le temps. Utiliser ma fonction serait donc la meilleure solution car elle est toujours en temps réel.