• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 341
  • Last Modified:

Check to see if IP is in Database Table SQL VBScript ACCESS

Hi, this is very simple...

I am trying to find out if an IP address (that was saved in a table) is in a particular column called IP and if that is so...return a result

I just need the SQL to get it done

ADO connection here to whatever .mdb

i need the sql to determine whether or not the value is in the table or not...or at least how to find out ... evaluate and send a result bsed on that

i will take the result and then redirect all IP's in the list to a page prohibiting them from entering the site...

basically i just need a snipplet of how to check if the IP in already in the DB or not
0
Devario Johnson
Asked:
Devario Johnson
1 Solution
 
DarrenMcCallCommented:
Looking for something like this?
'Datebase connection
set oConn=Server.CreateObject("ADODB.Connection")
oConn.Provider="Microsoft.Jet.OLEDB.4.0"
oConn.Open "Database.mdb" 'CHANGE DATABASE NAME!
set oRS = Server.CreateObject("ADODB.recordset")
sql="SELECT IP FROM Table1" 'CHANGE TABLE NAME!
oRS.Open sql, oConn
 
If oRS.EOF Then
	'IP Not Found!
Else
	Response.Redirect("http://www.google.com/")
End If
 
'Cleanup
oRS = Nothing
oConn = Nothing
oRS.Close
oConn.Close

Open in new window

0
 
jgoedersCommented:
dim rs as recordset
set rs =currentdb.openRecordset("SELECT * FROM IP WHERE IP_COLUMN = ' " & sIPVariable & " ' "
if rs.eof then
'not in table
else
'in table
end if
0
 
Göran AnderssonCommented:
DarrenMcCall,
- There is no condition in your query, so it will just check if there is anything in the table or not.
- If you do a redirect before the cleanup, the cleanup will not run.
- In the cleanup, you have to call Close before you set the references to Nothing.

This will work a little bit better:
' Declare variables
Dim objConnection, objRS, lngCnt, strIP
' Get IP
strIP = Request.ServerVariables("REMOTE_ADDR")
' Open connection
Set objConnection = Server.CreateObject("ADODB.Connection")
objConnection.Provider = "Microsoft.Jet.OLEDB.4.0"
objConnection.Open "Database.mdb"
' Count occurances of the IP
strSQL="select count(*) from Blocked where IP = '" & Replace(strIP, "'","''") & "'"
Set objRS = objConnection.Execute(strSQL)
' Get the result
lngCnt = objRS(0)
' Close the recordset
objRS.Close
Set objRS = Nothing
' Close connection
objConnection.Close
Set objConnection = Nothing
' Check result
If lngCnt = 0 Then
        'IP Not Found
Else
        Response.Redirect "Denied.asp"
End If

Open in new window

0
NEW Veeam Agent for Microsoft Windows

Backup and recover physical and cloud-based servers and workstations, as well as endpoint devices that belong to remote users. Avoid downtime and data loss quickly and easily for Windows-based physical or public cloud-based workloads!

 
DarrenMcCallCommented:
@GreenGhost, yes and yes. Nice catch, thanks.
0
 
Devario JohnsonSoftware EngineerAuthor Commented:
Hi, guys, I got the concept from greenhost, and just wrote my own sql statement.  Thanks for all the help
0
 
Devario JohnsonSoftware EngineerAuthor Commented:
this is the snipplet of code that I developed to achieve this task.  
Dim adoCon, ID, rsGuestbook, strSQL, banIP
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("guestbook_2003.mdb")
Set rsGuestbook = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT Banned.IP FROM Banned WHERE IP='" & Request.ServerVariables("REMOTE_ADDR") & "'"
rsGuestbook.Open strSQL, adoCon
 
Do While not rsGuestbook.EOF
	banIP = rsGuestbook("IP")
	if banIP <> "" then
	Response.Redirect "Denied.asp"
	end if
	rsGuestbook.MoveNext
loop
 
rsGuestbook.Close
Set rsGuestbook = Nothing
Set adoCon = Nothing

Open in new window

0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

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