Solved

Winsock and Ips

Posted on 2003-11-27
6
513 Views
Last Modified: 2013-11-13
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
Comment
Question by:raptorpb1
  • 3
  • 3
6 Comments
 

Author Comment

by:raptorpb1
ID: 9833796
btw, im editing aroud with this rogram
http://www.freevbcode.com/ShowCode.Asp?ID=2742
0
 
LVL 1

Expert Comment

by:thekng
ID: 9837406
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
 

Author Comment

by:raptorpb1
ID: 9840981
Do you think if I replaced the C:\bannedips.txt and pu http://www.mysite.com/bannedips.txt it would work?
0
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Author Comment

by:raptorpb1
ID: 9841861
How can I make it so that it sends the user a message before it disconnects him?
txtoutput = "You have been banned"
0
 
LVL 1

Expert Comment

by:thekng
ID: 9842849
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
 
LVL 1

Accepted Solution

by:
thekng earned 500 total points
ID: 9845158
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

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
This article will show, step by step, how to integrate R code into a R Sweave document
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

791 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question