raptorpb1
asked on
Winsock and Ips
I am creating a node based server, but only allowing the clients to connect to a central server.
Is there a way to ban or disallow certain ips i would put in a .txt file?
Is there a way to ban or disallow certain ips i would put in a .txt file?
try this:
Private Sub Winsock1_ConnectionRequest (ByVal requestID As Long)
Dim bannedip As String
Open "C:\bannedips.txt" For Input As #1
While Not EOF(1)
Input #1, bannedip
If Winsock1.RemoteHost = bannedip Then Exit Sub
Wend
Close #1
End Sub
Private Sub Winsock1_ConnectionRequest
Dim bannedip As String
Open "C:\bannedips.txt" For Input As #1
While Not EOF(1)
Input #1, bannedip
If Winsock1.RemoteHost = bannedip Then Exit Sub
Wend
Close #1
End Sub
ASKER
Do you think if I replaced the C:\bannedips.txt and pu http://www.mysite.com/bannedips.txt it would work?
ASKER
How can I make it so that it sends the user a message before it disconnects him?
txtoutput = "You have been banned"
txtoutput = "You have been banned"
ok for the URL you'll need to create another winsock:
Public m_strRemoteHost
Public m_strFilePath
Public m_strHttpResponse
Public m_bResponseReceived
Public Function BannedIps()
Dim strURL As String
strURL = "www.mysite.com/bannedips.txt" 'Change to the real URL (without http://)
m_strRemoteHost = Left$(strURL, InStr(1, strURL, "/") - 1)
m_strFilePath = Mid$(strURL, InStr(1, strURL, "/"))
m_strHttpResponse = ""
m_bResponseReceived = False
With Form1.Winsock1
.Close
.LocalPort = 0
.Connect m_strRemoteHost, 80
End With
End Function
Private Sub Form_Load()
BannedIps
End Sub
Private Sub Winsock2_Connect()
Dim strHttpRequest As String
strHttpRequest = "GET " & m_strFilePath & " HTTP/1.1" & vbCrLf
strHttpRequest = strHttpRequest & "Host: " & m_strRemoteHost & vbCrLf
strHttpRequest = strHttpRequest & "Connection: close" & vbCrLf
strHttpRequest = strHttpRequest & "Accept: */*" & vbCrLf
strHttpRequest = strHttpRequest & vbCrLf
Winsock2.SendData strHttpRequest
End Sub
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim strData As String
Winsock2.GetData strData
m_strHttpResponse = m_strHttpResponse & strData
Open "C:\bannedips.txt" For Append As #1
Print #1, Mid(m_strHttpResponse, _
InStr(1, m_strHttpResponse, _
vbCrLf & vbCrLf) + 4)
Close #1
End Sub
and then
Private Sub Winsock1_ConnectionRequest (ByVal requestID As Long)
Dim bannedip As String
Open "C:\bannedips.txt" For Input As #1
While Not EOF(1)
Input #1, bannedip
If Winsock1.RemoteHost = bannedip Then Exit Sub
Wend
Close #1
End Sub
will open the updated C:\bannedips.txt"
and for the "You have been banned" message:
in the client app also check www.mysite.com/bannedips.txt if connection is not accepted.
Public m_strRemoteHost
Public m_strFilePath
Public m_strHttpResponse
Public m_bResponseReceived
Public Function BannedIps()
Dim strURL As String
strURL = "www.mysite.com/bannedips.txt" 'Change to the real URL (without http://)
m_strRemoteHost = Left$(strURL, InStr(1, strURL, "/") - 1)
m_strFilePath = Mid$(strURL, InStr(1, strURL, "/"))
m_strHttpResponse = ""
m_bResponseReceived = False
With Form1.Winsock1
.Close
.LocalPort = 0
.Connect m_strRemoteHost, 80
End With
End Function
Private Sub Form_Load()
BannedIps
End Sub
Private Sub Winsock2_Connect()
Dim strHttpRequest As String
strHttpRequest = "GET " & m_strFilePath & " HTTP/1.1" & vbCrLf
strHttpRequest = strHttpRequest & "Host: " & m_strRemoteHost & vbCrLf
strHttpRequest = strHttpRequest & "Connection: close" & vbCrLf
strHttpRequest = strHttpRequest & "Accept: */*" & vbCrLf
strHttpRequest = strHttpRequest & vbCrLf
Winsock2.SendData strHttpRequest
End Sub
Private Sub Winsock2_DataArrival(ByVal
On Error Resume Next
Dim strData As String
Winsock2.GetData strData
m_strHttpResponse = m_strHttpResponse & strData
Open "C:\bannedips.txt" For Append As #1
Print #1, Mid(m_strHttpResponse, _
InStr(1, m_strHttpResponse, _
vbCrLf & vbCrLf) + 4)
Close #1
End Sub
and then
Private Sub Winsock1_ConnectionRequest
Dim bannedip As String
Open "C:\bannedips.txt" For Input As #1
While Not EOF(1)
Input #1, bannedip
If Winsock1.RemoteHost = bannedip Then Exit Sub
Wend
Close #1
End Sub
will open the updated C:\bannedips.txt"
and for the "You have been banned" message:
in the client app also check www.mysite.com/bannedips.txt if connection is not accepted.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
http://www.freevbcode.com/ShowCode.Asp?ID=2742