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.

AspLocateDomain.asp

<%@ EnableSessionState=False LANGUAGE="VBSCRIPT" %>
<%
Option explicit
Response.Buffer = false
%>
<!--
'// AspLocateDomain sample script
'//
'// Demonstrates how to use HexDns to retrieve LOC records
'// for a domain (if available) to determine its geographic
'// location
'//
'// For more information on LOC records, go to
'// http://www.ckdhr.com/dns-loc/
'//
'// Copyright (C) 1999 Hexillion Technologies. All rights reserved.
'//
-->
<!-- #include file="AuxFuncs.asp" -->
<!-- #include file="HexDns.asp" -->

<html>

<head>
<title>Hexillion AspLocateDomain sample</title>
</head>

<body bgcolor="#FFFFFF" text="#000000" vlink="#808080" link="#0000FF">

<%
dim oDns, oResponse
dim sDomain, sList, lList, aDomains

aDomains = Array( "yahoo.com", _
				  "kei.com", _
				  "goldenglow.com.au", _
				  "alink.net", _
				  "caida.org", _
				  "fu-berlin.de", _
				  "ckdhr.com", _
				  "rc5stats.distributed.net", _
				  "vrx.net", _
				  "router.golan.net", _
				  "config.com", _
				  "hubert.fukt.hk-r.se" )

'// Create objects
set oDns = Server.CreateObject( "HexDns.Connection" )

'// Check for form input, set defaults
sDomain = Request( "domain" )
sList = request( "list" )
if isNumeric( sList ) then
	lList = clng( sList )
end if

%>

<table cellpadding="5" width="100%"><tr>
<td colspan="2" bgcolor="#E1EFFF"><font face="Arial" size="5"><strong>AspLocateDomain sample</strong></font><br>
Uses HexDns to retrieve geographic information from LOC records<br>
[ <a href="http://www.ckdhr.com/dns-loc/" target="_blank">more info on LOC records</a> ]
</td></tr>
<tr>
<td valign="top" bgcolor="#E1EFFF">
<form name="tcpquery" method="POST" action="<%= request( "SCRIPT_NAME" ) %>">
	<table cellpadding="5">
		<tr>
			<td align="right">domain</td>
			<td><input type="text" name="domain" size="22" value="<%= Server.HtmlEncode( sDomain ) %>"></td>
		</tr>
		<tr>
			<td>&nbsp; </td>
			<td>or</td>
		</tr>
		<tr>
			<td>&nbsp; </td>
			<td><select name="list">
<%
dim l
for l = lbound( aDomains ) to ubound( aDomains )
	Response.Write "<option"
	if l = lList then Response.Write " selected"
	Response.Write " value=""" & l & """>" & Server.HtmlEncode( aDomains( l ) ) & "</option>" & vbcrlf
next
%>
			</select></td>
		</tr>
		<tr>
			<td>&nbsp; </td>
			<td><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=AspLocateDomain.asp" target="_blank">view source</a>
	&nbsp; |&nbsp; <a href="http://www.hexillion.com/samples/" target="_top">download</a>
	</font></td>
</tr>
<%
WriteLicenseRow "HexDns", oDns
%>
</table>
</td>
</tr></table>
<p>
<%
if "POST" = request( "REQUEST_METHOD" ) then

	'// Determine what to use for query string
	dim sQuery
	if len( sDomain ) then
		sQuery = sDomain
	else
		sQuery = aDomains( lList )
	end if

	'// Check for default server
	if 0 = oDns.RemoteAddr then
		Response.Write "Could not obtain default server address."
		
	else
		'// Query for records
		Set oResponse = oDns.Query( sQuery, hexDnsTypeLOC  )
		
		'// Check for communication errors
		if hexDnsErrSuccess <> oDns.Error then
			Response.Write "DNS query failed: <strong>" & Server.HtmlEncode( GetDnsErrorString( oDns.Error ) ) & "</strong>"
		
		'// Check for server errors	
		elseif hexDnsMsgRcodeSuccess <> oResponse.ResponseCode then
			Response.Write "DNS server returned an error: <strong>" & Server.HtmlEncode( GetMsgRcodeString( oResponse.ResponseCode ) ) & "</strong>"

		'// Check for returned records			
		elseif 0 = oResponse.AnswerRecords.Count then
			Response.Write "There are no LOC records available for <strong><tt>" & Server.HtmlEncode( sQuery ) & "</tt></strong>"
			
		else
			'// Display the LOC info and map
			dim sUrl, sUrl2, oRec, sLat, sLon
			
			for each oRec in oResponse.AnswerRecords
				if hexDnsTypeLOC = oRec.Type then
					'// Build map URLs
					sLat = CStr( ConvertLocCoords( oRec.Latitude ) / 3600000 )
					sLon = CStr( ConvertLocCoords( oRec.Longitude ) / 3600000 )
					sUrl = "/LocMap/LocMap.aspx?"
					sUrl = sUrl & "lat=" & sLat
					sUrl = sUrl & "&lon=" & sLon
					sUrl2 = sUrl & "&zoom=1"
				
					Response.Write "<strong><tt>" & Server.HtmlEncode( oRec.Name ) & "</tt></strong> "
					if sQuery <> oRec.Name then
						Response.Write "(alias <strong><tt>" & Server.HtmlEncode( sQuery ) & "</tt></strong>) "
					end if
					Response.Write "is located at:</p>" & vbcrlf
%>
<table border="0" cellspacing="0" cellpadding="10">
	<tr>
		<td>Latitude</td>
		<td align="right"><%= GetCoordString( oRec.Latitude, true ) %></td>
		<td>&nbsp; </td>
	</tr>
	<tr>
		<td>Longitude</td>
		<td align="right"><%= GetCoordString( oRec.Longitude, false ) %></td>
		<td>&nbsp; </td>
	</tr>
	<tr>
		<td>Altitude</td>
		<td align="right"><%= CStr((oRec.Altitude - 10000000) / 100) %>m</td>
		<td>&nbsp; </td>
	</tr>
	<tr>
		<td colspan="3" align="center" valign="center">
		<img alt="Wide map" src="<%= sUrl %>" border="1" width="384" height="192">
		</td>
	</tr>
	<tr>
		<td colspan="3" align="center" valign="center">
		<img alt="Zoomed map" src="<%= sUrl2 %>" border="1" width="384" height="192">
		</td>
	</tr>
</table>
<p>
<%
					exit for
				end if
			next
			set oRec = nothing
		end if
	end if
end if		
		
set oDns = nothing
set oResponse = nothing
%>
</p>
</body>
</html>