Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 518
  • Last Modified:

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?
0
raptorpb1
Asked:
raptorpb1
  • 3
  • 3
1 Solution
 
raptorpb1Author Commented:
btw, im editing aroud with this rogram
http://www.freevbcode.com/ShowCode.Asp?ID=2742
0
 
thekngCommented:
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
0
 
raptorpb1Author Commented:
Do you think if I replaced the C:\bannedips.txt and pu http://www.mysite.com/bannedips.txt it would work?
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
raptorpb1Author Commented:
How can I make it so that it sends the user a message before it disconnects him?
txtoutput = "You have been banned"
0
 
thekngCommented:
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.
0
 
thekngCommented:
You can also use the Internet Transfer Control 6.0 (add it from Project->Components) and then:

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Dim bannedip As String
Dim bannedipstxt As String
Dim i As Integer
bannedipstxt = Inet1.OpenURL("www.mysite.com/bannedips.txt")
For i = 0 To UBound(Split(bannedipstxt, vbLf))
bannedip = Split(bannedipstxt, vbCrLf)(i)
If Winsock1.RemoteHost = bannedip Then Exit Sub
Next
End Sub

much shorter :P
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now