Solved

Winsock and Ips

Posted on 2003-11-27
6
512 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
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

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

Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

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

There is an easy way, in .NET, to centralize the treatment of all unexpected errors. First of all, instead of launching the application directly in a Form, you need first to write a Sub called Main, in a module. Then, set the Startup Object to th…
Windows Script Host (WSH) has been part of Windows since Windows NT4. Windows Script Host provides architecture for building dynamic scripts that consist of a core object model, scripting hosts, and scripting engines. The key components of Window…
The viewer will learn how to implement Singleton Design Pattern in Java.
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…

803 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