River Drive gets Softpedia thumbs up
Probably sad, but I'm chuffed!


Ubuntu is a community developed, Linux-based operating system that is perfect for laptops, desktops and servers. It contains all the applications you need - a web browser, presentation, document and spreadsheet software, instant messaging and much more. www.ubuntu.com
The Ubuntu developers are constantly bringing you the absolute latest and most stable software that the open source and free software communities have to offer. This is their latest result: the Ubuntu 8.04 LTS release candidate, which brings a host of excellent new features.
#!/bin/sh
# CheckRouterStatus
# Tristan Phillips
# Checks the status of a netgear DG* router and reconnects / reboots if not connected.
# Licensed under the terms of the GNU.
# Arguments:
# $1 = Ping target, use www.google.co.uk
# $2 = Router IP, normally 192.168.0.1 or 192.168.1.1
# $3 = The router username (admin)?
# $4 = Router password (password)?
# Check arguments are present
if [ "$1" = "" ] || [ "$2" = "" ] || [ "$3" = "" ] || [ "$4" = "" ]; then
echo usage: CheckRouterStatus.sh PingTarget RouterIP RouterUser RouterPassword
exit
fi
# Try the ping
echo Attempting to ping $1
ping -W 10 -c 8 $1 >/dev/null 2> /dev/null
# Check result
if [ $? -ne 0 ]; then
# The ping failed! Get Stats and disconnect the router
echo Ping failed, dumping stats and disconnecting router . . .
echo `date` Ping failed, here are the router stats: >> /var/log/RouterReboots
wget --user $3 --password $4 "http://$2/setup.cgi?next_file=stattbl.htm"
# Execute the first router command twice as authorization tends to fail...
wget --user $3 --password $4 "http://$2/setup.cgi?next_file=stattbl.htm"
grep ttext setup.cgi?next_file=stattbl.htm >> /var/log/RouterReboots
echo `date` Disconnecting router >> /var/log/RouterReboots
wget -q --user $3 --password $4 "http://$2/setup.cgi?todo=disconnect" > /dev/null 2> /dev/null
echo Waiting . . .
sleep 10
echo Connecting router . . .
echo `date` Connecting router >> /var/log/RouterReboots
# Async call to connect incase of timeout
wget -q --user $3 --password $4 "http://$2/setup.cgi?todo=connect" > /dev/null 2> /dev/null &
echo Waiting . . .
sleep 20
# Try again
echo Attempting to ping $1
ping -W 10 -c 8 $1 > /dev/null 2> /dev/null
# Check results
if [ $? -ne 0 ]; then
echo Ping failed . . .
echo `date` Disconnect / Connect cycle did not correct the issue! Trying a reboot . . . >> /var/log/RouterReboots
wget -q --user $3 --password $4 "http://$2/setup.cgi?todo=reboot" > /dev/null 2> /dev/null
else
echo Ping OK, Connection issue solved!
echo `date` connection issue solved. >> /var/log/RouterReboots
fi
# Be nice and logout
wget -q --user $3 --password $4 "http://$2/setup.cgi?todo=logout" > /dev/null 2> /dev/null
else
echo Ping OK
fi
#clean up
rm setup.cgi*
exit 0

// Calculates the TCP checksum using the IP Header and TCP Header.
// Ensure the TCPHeader contains an even number of bytes before passing to this method.
// If an odd number, pad with a 0 byte just for checksumming purposes.
static ushort GetTCPChecksum(byte[] IPHeader, byte[] TCPHeader)
{
uint sum = 0;
// TCP Header
for (int x = 0; x < TCPHeader.Length; x += 2)
{
sum += ntoh(BitConverter.ToUInt16(TCPHeader, x));
}
// Pseudo header - Source Address
sum += ntoh(BitConverter.ToUInt16(IPHeader, 12));
sum += ntoh(BitConverter.ToUInt16(IPHeader, 14));
// Pseudo header - Dest Address
sum += ntoh(BitConverter.ToUInt16(IPHeader, 16));
sum += ntoh(BitConverter.ToUInt16(IPHeader, 18));
// Pseudo header - Protocol
sum += ntoh(BitConverter.ToUInt16(new byte[] { 0, IPHeader[9] }, 0));
// Pseudo header - TCP Header length
sum += (UInt16)TCPHeader.Length;
// 16 bit 1's compliment
while ((sum >> 16) != 0) { sum = ((sum & 0xFFFF) + (sum >> 16)); }
sum = ~sum;
return (ushort)ntoh((UInt16)sum);
}
private static ushort ntoh(UInt16 In)
{
int x = IPAddress.NetworkToHostOrder(In);
return (ushort) (x >> 16);
}
Check it out at: Xgl on Wikipedia
I achieved my goal by upgrading my Suse installation from 10 to 10.1 (which was very smooth). To get Xgl working you need to choose Xgl and Compiz in Yast. Compiz is the 3d enabled window manager.
Getting Xgl working on my nvidia card was not as easy as I had hoped, however, after getting the drivers from nvidia and telling Sax to enable 3d acceleration, I got it working.
Later I installed Suse 10.1 on my Laptop which uses an Intel graphics card. Xgl and compiz worked out of the box!
Using the "hasher" utility you can:
This utility demonstrates intelligent dictionary cracking and highlights the need for a strong password.
Important: I have developed this utility for demonstrational / educational purposes only. I cant be held responsible if you use it to do something stupid.
Sample output:
C:\>hasher -m MD5 -h -f "C:\HasherV0.2.zip"
Hasher V0.2 - ^&*%$@
C:\HasherV0.2.zip is 144118 byte(s)
MD5 Hash = 368f17ee1588c7c04de83b7fe3ce59d8
C:\>
C:\>hasher -m SHA1 -h -v "Please hash this string"
Hasher V0.2 - ^&*%$@
SHA1 Hash = 1fd49c1b5dd1011d6596cded625b1ca95762e0
C:\>
C:\>hasher -D -v "htskz8kp9UdGhWSyAv9Eccc9Bx8=" -l dict.txt -a "JBloggs"
Hasher V0.2 - ^&*%$@
Attempting to reverse hash htskz8kp9UdGhWSyAv9Eccc9Bx8=
Using: SHA1 with wordlist dict.txt
Input is in: Base64
Appending: JBloggs to the guess
62.99%
Found: orange03
C:\>
C:\>hasher -?
Hasher V0.2 - ^&*%$@
Usage: hasher [-D -v <value> -p <text> -a <text> -l <path> -m
<method>
-h -s -?]
Valid arguments are:
-D - Attempt reverse hash using word list
-v - <value> Value for hashing or reversing
-p - <value> Prepend value to value for hashing
-a - <value> Append value to value for hashing
-l - <value> Path to wordlist file
-m - <SHA1/MD5/B64> hash method (default SHA1)
-h - Produce hex output rather than base 64
-s - Do not try common password modification methods
-? - Show this message
C:\>
Hasher is Mono compatible!
Download Hasher from www.TristanPhillips.com
For more information on the new features available, and for beta information, check out the Whidbey home page at: http://msdn.microsoft.com/asp.net/whidbey/default.aspx.