Peter's Blog

Redefining the Impossible

Items filed under di624


The di624 is a wireless router from dlink.


Filed under: di624

Add a comment

NTL broadband connection died at about 5pm. Checked DI624 router and could connect to it's admin functions from laptop via WiFi but could not do a good DHCP renew (it renewed but to 192.168.100.1 which is a local subnet address, not a 'proper' internet address). Looking at the cable modem the ready light was flashing which past experience tells me the line is dead. I didn't bother ringing tech support this time, I was patient.


Filed under: di624 ntl wifi

2 Comments

Got around to trying Skype today for some VOIP fun and games. The main problem for me to set this up was the poor sound quality on my Dell Inspiron 500m laptop. Using windows sound recorder with a plugin external microphone the recordings were distorted and pretty poor quality. I did some searching but I could find no fixes for this. Eventually I tried downloading new drivers for the SigmaTel C-Major Audio hardware from the Dell site. This fixed the problem.

I tried dialling my home phone but I could not get through because my home phone is set up to refuse calls from phones that withhold caller ID (to stop telesales) and Skype obviously has no caller ID to give.

Ringing wife's mobile I was able to amaze her and check Skype out simultaneously. It works. It's as good as using the phone and for ringing my mum in the evenings it works out cheaper than the landline. The rate to mobiles looks pretty steep, about 30p for a 30 second call.

I didn't need to fiddle with the DI624's firewall settings to get this working. For the record, I am on a 750k down/128k up broadband connection.

Now to ponder more about bluetooth headset.

pros:

  • can make phone calls with hands free

cons:

  • horrible pose factor makes it embarrassing to buy

Summary: Skype is cool.


1 Comment

Following previous activities my wifi connection had been ok for a week or two. I had no strange failures to connect when powering up my laptop, life was sweet. Last night I was in the middle of a good surf and the wireless connection died. It stayed dead through rebooting the laptop, swearing etc.

Eventually I went upstairs and rebooted the DI624 and this immediately fixed the problem.

This evening I went to use my desktop PC which is wired to the DI624 and it could not connect to the internet: DNS lookups failed. It could conneect to the routers administration pages on 192.168.0.1 but nslookup failed, e.g:

c:>nslookup www.bisiand.me.uk
DNS request timed out.
    timeout was 2 seconds.
*** Can't find server name for address 194.168.8.100: Timed out
DNS request timed out.
    timeout was 2 seconds.
*** Can't find server name for address 194.168.4.100: Timed out
*** Default servers are not available
Server:  UnKnown
Address:  194.168.8.100

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** Request to UnKnown timed-out

A side-by-side comparison with the laptop showed me that it was fine:

C:>nslookup www.bisiand.me.uk
Server:  cache2.ntli.net
Address:  194.168.8.100

Non-authoritative answer:
Name:    www.bisiand.me.uk
Address:  209.59.159.21

After some fiddling I rebooted the router through an option in the admin pages and this fixed the problem again.

Moral: the DI624 plays up about once every two weeks. Not sure I can pin this on the Intel Wifi card built into my laptop.


Filed under: di624 wifi

2 Comments

Since I flashed my DLink DI624 last week I haven't had any annoying/weird connection problems. So either:

  • Flashing DI624 fixed annoying/weird problems
  • WiFi using neighbours are on holiday
  • It's a flash in the pan and will start again, worse than ever.

Right now I have a UltraVNC window open on my laptop controlling my desktop PC upstairs while it burns a Knoppix ISO downloaded with BitTorrent using ISO Recorder.

Cool cool


Filed under: di624 knoppix wifi

Add a comment

Had another odd network problem. Happily surfing wirelessly on laptop when connection died. No amount of rebooting laptop restored connection so investigated further. Main desktop pc could connect to DI-624 admin pages so that was not a problem. Trued a DHCP-renew and it timed out. Unplugged power on broadband router and plugged back in, still no joy. Rebooted the DI-624, did a DHCP renew and now all is fine (i.e. you are reading this). Odd.

Update: persistant problems all evening. Took the opportunity to flash the DI624 with a new version released last August. This reset everything to default values and I've only just got things talking again. I'm on WPA-PSK authentication.

USB Flash Keys: a must have.

Not sure I ever documented that I got the free 600Kbps to 750Kbps upgrade from NTL.

Not so much NTHell as WIFIHell.


Filed under: di624 ntl

1 Comment

Windows XP SP2 has not fixed the flakiness of my wireless networking. A summary of my setup:

  • Dell Inspiron 500m notebook with Dell Truemobile 1300 WLAN Mini PCI card.
  • DLink DI624 Wireless router

Most of the time this works fine but occasionally when the laptop comes out of hibernation it fails to connect. I have to go back into hibernate and out again to get things rolling.

When it's working it gives me a 54.0Mbps connection which is ample for my 750kbps NTL Internet connection (and thanks to NTL for the free upgrade from 600k).


Filed under: dell di624 inspiron ntl windows

Add a comment

My ISP gives my server a dynamic IP address which is allocated using DHCP. If the ISP decided to reallocate this IP address for some reason then nobody would be able to access my server because only my ISP would know the new IP address.

DynDNS provides a DNS service that allows dynamic IP addresses to be assigned to domain names. A client program running on the server can check to see if the IP address has been reassigned and, if so, tell the dyndns service which will in turn tell the rest of the world. The service is free (for up to 5 domains) and very reliable.

There are client programs available to update the DynDNS information but I didn't want to use any of these because:

  • Most are windows

  • Most linux ones are overcomplex and underdocumented (not unusual)

  • None support interrogating my DLink DI624 router for the current IP address. They mostly support accessing web sites to get the IP address but this limits how often I can check for changes without being accused of net abuse.

Hence I wrote a python script to do it. This is executed by cron once an hour.

My ISP gives my server a dynamic IP address which is allocated using DHCP. If the ISP decided to reallocate this IP address for some reason then nobody would be able to access my server because only my ISP would know the new IP address.

DynDNS provides a DNS service that allows dynamic IP addresses to be assigned to domain names. A client program running on the server can check to see if the IP address has been reassigned and, if so, tell the dyndns service which will in turn tell the rest of the world. The service is free (for up to 5 domains) and very reliable.

There are client programs available to update the DynDNS information but I didn't want to use any of these because:

  • Most are windows

  • Most linux ones are overcomplex and underdocumented (not unusual)

  • None support interrogating my DLink DI624 router for the current IP address. They mostly support accessing web sites to get the IP address but this limits how often I can check for changes without being accused of net abuse.

Hence I wrote a python script to do it. This is executed by cron once an hour.

#!/usr/bin/python
import urllib2
import string
import base64
import re
import sys
import time

#
# Read config settings.
#
try:
    
from dynconfig import *
except:
    
strCurrentAddr = None
    
strLastUpdate = 0

strRouterName = <CENSORED>
strRouterPassword = <CENSORED>

#
# Send request to dlink DI-624 for status page
# Add authorisation header to log in.
#
oReq = urllib2.Request('http://192.168.0.1/st_devic.html')
oReq.add_header("USER-AGENT", "Mozilla/4.76 en (X11; U; Linux 2.4.1-0.1.9 i586)")
oReq.add_header("AUTHORIZATION", string.strip("Basic " +
      
base64.encodestring("%s:%s" % (strRouterName, strRouterPassword))))

#
# Search through status page for 'WAN' followed by the IP address
#
bWan = False

for strLine in urllib2.urlopen(oReq):
#   print strLine:-1

    
#
    
# Searching for the 'WAN' section.
    
#
    
if bWan == False:
        
if strLine.find( 'WAN') >= 0:
            
bWan = True
    
else:
        
#
        
# Searching for an ip address.
        
#
        
oMatch = re.search( r'\d+\.\d+\.\d+\.\d+', strLine)
        
if oMatch:
            
strAddr = oMatch.group()
            
break

else:
    
if bWan == True:
        
raise "IP address not found"
    
else:
        
raise "WAN section not found"

#
# Create set of urls and login details
#
if 1:
    
#
    
# My urls to update.
    
#
    
strUrls = <CENSORED>

    
strName = <CENSORED>
    
strPassword = <CENSORED>
else:
    
#
    
# Testing: test urls to update
    
#
    
strUrls = ( "test.homeip.net", "test.mine.nu")

    
strName = "test"
    
strPassword = "test"
    
strAddr = "1.2.3.4"

#
# If address is unchanged do not submit it.
#
if strAddr == strCurrentAddr:
    
#
    
# Also update if it is more than a while since the last update.
    
# This stops the account terminating through lack of use.
    
#
    
if strLastUpdate - time.time() < (3600 * 24 * 14):
        
sys.exit()

#
# Create url to submit the request
# optional fields left blank
# This will handle all urls in one go.
#
strUrl = ("""http://members.dyndns.org/nic/update?
system=dyndns&
hostname=%s&
myip=%s"""
 % (",".join( strUrls), strAddr)).replace( '\n', '')

oReq = urllib2.Request( strUrl)
oReq.add_header("USER-AGENT", "Mozilla/4.76 en (X11; U; Linux 2.4.1-0.1.9 i586)")
oReq.add_header("AUTHORIZATION", string.strip("Basic " + base64.encodestring("%s:%s" % (strName, strPassword))))

#
# Dump out the responses. It should say 'good' for each.
#
#   for strLine in urllib2.urlopen(oReq):
#       print strLine

#
# Write updated address and time to config file.
#
open( "dynconfig.py", "wt").write( """strCurrentAddr = "%s"
strLastUpdate = %d
"""
 % (strAddr, time.time()))

Filed under: di624 linux python windows

Add a comment

My broadband connection suddenly stopped working. This is NTL broadband for the record, using a DLink DI624 Wireless router. All PCs lost connection but could still connect to the router.

The problem turned out to be because the Router had lost the IP address allocated to it from the ISP via DHCP. I pressed the DHCP renew button on the status panel and it all burst into life. Not sure if it's a problem with my new XP setup, deciding to drop the DHCP for me.

I had to manually tell dyndns.org about my new IP address as I don't have my Gentoo box set up to do it. The router should be able to update it automatically but it crashes every time I try to set that up. Hum, maybe they have a new version of the firmware out...


Filed under: di624 gentoo linux ntl

2 Comments

Set up ipcheck (http://ipcheck.sourceforge.net/) to check if my ip address changes and tell http://dyndns.org about it. The -r option is useful as it tells it to use http://checkip.dyndns.org/ to get the ip address, it doesn't try to parse the routers web based files. I could set this up and check more often without thrashing dyndns's server but it works as it is. ipcheck does not check the Dlink DI624 natively. If I was more public spirited I could find out how and tell the world.

Read here about cron http://www.tech-geeks.org/contrib/mdrone/cron-howto.html and set up a cron job to check the dns once an hour.


Filed under: di624

2 Comments