Archive for the ‘Networking’ Category

My Whole App is a LINQ Expression

Sunday, January 10th, 2010

I just published an application which I consider useful over on codeplex with source hosted on launchpad.

http://wlanchannelinfo.codeplex.com/

https://code.edge.launchpad.net/~evarlast/+junk/WlanChannelInfo

I wrote this because Wifi in my home is very slow. Its so slow I’m tempted to run a network cable to my couch so that even when I’m couch surfing I can have fast access to my server.

In an effort to diagnose my slow Wifi, I tried to see if my neighbors were causing interference by running Wifi on the same or overlapping channel as me. I downloaded netstumbler; it didn’t work. I downloaded some other tool; neither did it.

So I wondered how hard it would be to write my own. It turns out Windows 7 added to the Wlan* api to expose all of the necessary data. After some digging I found the managedwlan project on codeplex. Now I got to play.

Once I figured out the api, I was able to write the entire application with pretty much one LINQ expression:

var client = new WlanClient();
var retval =
from wlanIface in client.Interfaces
from bssentry in wlanIface.GetNetworkBssList()
from network in wlanIface.GetAvailableNetworkList(Wlan.WlanGetAvailableNetworkFlags.IncludeAllAdhocProfiles)
where InterfaceService.GetStringForSSID(network.dot11Ssid) == InterfaceService.GetStringForSSID(bssentry.dot11Ssid)
select new WifiInfo
{
bssentry = GetStringForSSID(bssentry.dot11Ssid),
channel = Wifi.FrequencyChannelMap[bssentry.chCenterFrequency],
frequency = bssentry.chCenterFrequency,
linqQuality = bssentry.linkQuality,
strength = bssentry.rssi,
signalQuality = network.wlanSignalQuality,
wifitype = network.dot11BssType
};

The result of that expression is directly databound to a WPF DataGrid and I can now view the data that I want to.

I really love the platform (C#+.NET) on which I work.

Restoring a Desktop Image to a VMware Virtual Machine with Windows Home Server

Friday, October 9th, 2009
  1. Copy the restorecd.iso from \\homeserver\Software\Home PC Restore CD to your VMware server.
  2. Configure a new VMware virtual machine with an appropriately sized disk, a network adapter (I prefer bridged) and a CD ROM Drive pointed to said restorecd.iso from step 1. Do not start the VM at the last step.
  3. Find the vmx file created in step 2. Add a line ethernet0.virtualDev= “e1000”.  This the required trick step since Windows Home Server doesn’t have a driver for the LANCE network chip which vmware normally emulates.
  4. Boot the Virtual Machine and follow the prompts.

nmap can open device eth15, but only if you let it

Tuesday, June 9th, 2009

This is here as a note to myself to not be stupid.

I’ve remembered at forgotten this at least 4 times and so that makes me stupid for not remembering.

When nmap on win32 tells you that “dnet: Failed to open device eth15”, it is really suggesting that you run it as administrator.

You need to be administrator to access the network device at this level.