<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.19298">
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2 face=Arial>Here is the perl script that connects to the 
APRS-IS and inserts data into a MySQL table.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>It uses DBI, Net::Telnet and 
Ham::APRS::FAP</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>//</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>#!/usr/bin/perl<BR>#<BR># Amateur Radio APRS packer 
Parser<BR>#<BR>use DBI;<BR>use Net::Telnet;<BR>use Ham::APRS::FAP 
qw(parseaprs);<BR>my $database_handler =  
DBI->connect("DBI:mysql:database=aprs;host=localhost;port=3306","root","");<BR>my 
$host = "first.aprs.net.au";<BR>my $port = "14579";<BR>#my $port = 
"10152";<BR>my $t = new Net::Telnet(Timeout => '600',Dump_log => 
'dump.log',Input_log => 'input.log',Output_log => 'output.log',Prompt 
=> "/$prmt/");<BR>$t->errmode('die');<BR>$t->Net::Telnet::open(Host 
=> $host, Port => $port);<BR>print $t "user callsign pass 12345 vers perl 
script filter p/VK\n";<BR>while (<$t>)<BR>{<BR>my $aprspacket = $_;<BR>my 
%packetdata;<BR>my $retval = parseaprs($aprspacket, \%packetdata);<BR>if 
($retval == 1)<BR>{<BR>while (my ($key, $value) = 
each(%packetdata))<BR>{<BR>#print $key;<BR>#print "$key: $value\n";<BR>if ($key 
eq "srccallsign")<BR>{<BR>$callsign = ($value);<BR>}<BR>if ($key eq 
"latitude")<BR>{<BR>$latitude = ($value);<BR>}<BR>if ($key eq 
"longitude")<BR>{<BR>$longitude = ($value);<BR>}<BR>if ($key eq 
"comment")<BR>{<BR>$comment = ($value);<BR>}<BR>if ($key eq 
"type")<BR>{<BR>$type = ($value);<BR>}<BR>}<BR>#print "Call: $callsign Lat: 
$latitude Lon: $longitude \n";<BR>#<BR># MySQL database<BR>#<BR>if ($type =~ 
m/location/)<BR>{<BR>print "Call: $callsign Lat: $latitude Lon: $longitude 
\n";<BR>$sql = "delete from aprs_targets where callsign = '$callsign'" 
;<BR>$statement_handler =$database_handler->prepare 
($sql);<BR>$statement_handler->execute ;<BR>$sql = "insert into aprs_targets 
values (now(),'$callsign','$latitude','$longitude')" ;<BR>$statement_handler 
=$database_handler->prepare ($sql);<BR>$statement_handler->execute 
;<BR>}<BR>}<BR>else<BR>{<BR>warn "Parsing failed: $packetdata{resultmsg} 
($packetdata{resultcode})\n";<BR>}<BR>}</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV></BODY></HTML>