Note: This is not the complete source code--just the main source file.
You can download the full source (with include files) from our sample code archive by clicking on the diskette icons.
<%@ EnableSessionState=False LANGUAGE="VBSCRIPT" %>
<%
'// AspTcpQuery sample script
'//
'// Demonstrates use of HexTcpQuery and HexLookup
'//
'// Copyright (C) 1998 Hexillion Technologies. All rights reserved.
'//
Option explicit
Response.Buffer = true
%>
<!-- #include file="AuxFuncs.asp" -->
<html>
<head>
<title>Hexillion AspTcpQuery sample</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" vlink="#808080" link="#0000FF">
<%
const sUserAgent = "User-Agent: AspTcpQuery sample (http://www.hexillion.com/)"
dim oLkup, oTcpq, sServer, sQuery, lService, sServices, l
sServices = Array( "whois", "finger", "HTTP", "echo" )
set oLkup = Server.CreateObject( "Hexillion.HexLookup" )
set oTcpq = Server.CreateObject( "Hexillion.HexTcpQuery" )
sServer = Request( "server" )
sQuery = request( "query" )
if IsEmpty( request( "service" ) ) then
lService = -1
else
lService = CLng( request( "service" ) )
end if
if "" = sServer then sServer = "www.yahoo.com"
if "" = sQuery and lService < 0 then sQuery = "GET / HTTP/1.0"
%>
<script language="JavaScript">
<!--hide this script from old browsers
// This function provides working default
// queries when the user selects a service
function InitFields( lService )
{
var sServer, sQuery;
if( 0 == lService )
{
sServer = "whois.networksolutions.com";
sQuery = "yahoo.com";
}
else if( 1 == lService )
{
sServer = "idsoftware.com";
sQuery = "johnc";
}
else if( 2 == lService )
{
sServer = "www.yahoo.com";
sQuery = "GET / HTTP/1.0";
}
else
{
sServer = "www.cs.unc.edu";
sQuery = "Text to be echoed";
}
window.document.tcpquery.server.value = sServer;
window.document.tcpquery.query.value = sQuery;
}
//-->
</script>
<table cellpadding="5" width="100%"><tr>
<td colspan="2" bgcolor="#E1EFFF"><font face="Arial" size="5"><strong>AspTcpQuery sample</strong></font>
</td></tr>
<tr>
<td valign="top" bgcolor="#E1EFFF">
<form name="tcpquery" method="POST" action="<%= request( "SCRIPT_NAME" ) %>">
<table cellpadding="5">
<tr><td align="right">service</td>
<td>
<%
dim lChecked
if lService >= 0 then
lChecked = lService
else
lChecked = 2 '// Default to HTTP
end if
for l = 0 to 3
if l = lChecked then
response.write "<input type=""radio"" value=""" & l & """ checked name=""service"" onClick=""InitFields( " & l & " )"">"
else
response.write "<input type=""radio"" value=""" & l & """ name=""service"" onClick=""InitFields( " & l & " )"">"
end if
response.write sServices( l ) & " "
next
%>
<tr><td align="right">server</td>
<td><input type="text" name="server" size=27 value="<%= Server.HtmlEncode( sServer ) %>"></td></tr>
<tr><td align="right">query</td>
<td><input type="text" name="query" size="27" value="<%= Server.HtmlEncode( sQuery ) %>">
<input type="submit" value="Go" name="B1"></td></tr>
</table>
</form>
</td>
<td valign="top" bgcolor="#E1EFFF">
<table border="0" cellspacing="0" cellpadding="7">
<tr>
<td colspan="2">powered by <b><a href="http://www.hexillion.com/software/" target="_top">HexGadgets</a></b>
<br><font size="-1">
<a href="http://www.hexillion.com/samples/view_src.asp?name=AspTcpQuery.asp" target="_blank">view source</a>
| <a href="http://www.hexillion.com/samples/" target="_top">download</a>
</font></td>
</tr>
<%
WriteLicenseRow "HexTcpQuery", oTcpq
WriteLicenseRow "HexLookup", oLkup
%>
</table>
</td>
</tr></table>
<%
if 0 <= lService and "" <> sServer then
Dim lAddr, sResponse, vResponse
Response.Flush
'// Look up remote server IP address
lAddr = oLkup.LookUp( sServer )
if 0 = lAddr then
Response.Write( "<p>Lookup of " & Server.HtmlEncode( sServer ) & " failed.</p>" )
else
response.write "<p>Querying <tt><strong>" & Server.HtmlEncode( sServer ) & " [" & oLkup.AddrToString( lAddr ) & "]</strong></tt>...</p>"
response.Flush
oTcpq.RemoteAddr = lAddr
oTcpq.Timeout = 20000
'// Set port and do query according to service selection
select case lService
case 0
oTcpq.RemotePort = hexTcpqPortWhois
sResponse = oTcpq.Query( sQuery & vbcrlf )
case 1
oTcpq.RemotePort = hexTcpqPortFinger
sResponse = oTcpq.Query( sQuery & vbcrlf )
case 2
oTcpq.RemotePort = hexTcpqPortHttp
sResponse = oTcpq.Query( sQuery & vbcrlf & _
sUserAgent & vbcrlf & _
"Host: " & sServer & vbcrlf & _
vbcrlf )
case else
oTcpq.RemotePort = hexTcpqPortEcho
sResponse = oTcpq.Query( sQuery )
end select
response.write "<p><strong>[begin response]</strong></p>"
response.write "<pre>" & Server.HTMLEncode( sResponse ) & "</pre>"
response.write "<p><strong>[end response]</strong></p>"
if hexTcpqErrSuccess <> oTcpq.Error then
response.write "<p>" & Server.HtmlEncode( GetTcpqErrorString( oTcpq.Error ) ) & "</p>"
end if
end If
end if
%>
</body>
</html>