Some of the stuff in there is outdated so maybe you should also read the update. I know I would!

How it all began - Read while listening to ominous music

As you know, it's supposedly impossible to know for sure whether a MSN contact is just offline or actually blocking you. There are a few websites out there that try to do it by checking online status from some random account, but that doesn't work unless your contacts have the "Only my friends can see my online status" option turned off. And since it's turned on by default, in 95% of cases (arbitrary statistics are way cool) that approach doesn't work. Which makes it 95% worthless.

"So how do YOU do it then?", you ask. Well, excellent question! See, when you look at the Windows Live profile page of a contact, you have access to various crap depending on their privacy settings. However, if you're in a contact's MSN allow list, you'll always be able to see the "Messenger Appearance" category on their page. And guess what? That's right, if they're blocking you that part mysteriously vanishes. That's how you can tell for sure.

Now while you could still check manually by right-clicking on any contact in your MSN buddy list and bringing up their profile page, I figured hey, since I learned how to code shit so I could afford to be lazy by letting computers do my work, why not automate the process! And while I was at it, I made it so that the script also looks for people who deleted you from their contact list without necessarily blocking you. Note that you could do this manually too. Just go to "Tools > Options > Privacy", click "View" and then try to figure out who's missing from the list.

Yeah... Better done automatically, right? Well try MSNSpy now!

How it works - Boring technical stuff you don't care about

  • Entering your Windows Live ID and password

Note that your precious password is encrypted with a randomly generated 128-bit RSA key before being sent to travel the vast cyberspace, so you're relatively safe. Of course I guess I could still steal it or something but rest assured I don't give a rat's ass about your MSN account. I already have one of my own and I like it better than yours. However if it really makes you uncomfortable, you're welcome to download the source code and set MSNSpy up on your own webspace.

New: By default MSNSpy only looks up people who are currently on your buddy list but I added an option that allows you to include deleted contacts. It'll take significantly longer though, what with there being more contacts to check and all.

  • Retrieving MSN contact list

After you submit the form with your Live ID and password, the script will log onto your MSN account and retrieve your contact list. If you were already signed in on MSN, it'll cause you to be disconnected. Don't sweat it, MSN just doesn't like it when you're connected from two different locations at the same time and you won't even appear online to your friends during this process. As soon as the contact list is retrieved, the script will sign off properly.

  • Retrieving Windows Live authentication cookie

That's where it gets fun in a nerdy way: since you need to be logged on Windows Live to see your contacts' profile pages, the script will emulate the login process by getting cookies and other things from the login page and then sending your Live ID and password using cURL voodoo magic. This allows it to retrieve a much needed cookie which will be used to fool Windows Live into thinking you're actually logged in.

  • Parsing your contacts' Windows Live profile pages

Now that it has your contact list and Windows Live authentication cookie, the script will pull the profile pages of each of your contacts and parse them to check if you're allowed to see their "Messenger Appearance" information. If not, you're being blocked. Sucks to be you.

  • Cook for a few minutes, serve with french bread and enjoy!

If everything worked fine (no guarantees here) you'll see two tabs, each contains a list of "friends" who either blocked or deleted you.
Nifty, eh?

Important: Keep in mind that while the "Deleted you" list is 100% accurate since it comes straight from your MSN account, Microsoft never intended for actually knowing who blocked you to be possible so in some rare cases the "Blocked you" list might falsely report a contact as blocking you. I've yet to figure out what exactly causes it but anyway, take those results with a grain of salt.

How it can be stolen - Can't steal what's free, punk

Because I'm all for helping science one mostly useless script at a time, the source code is freely available below. Feel free to set it up on your own webspace, re-use bits of it in projects of your own or even print it out for further use in case of toilet paper emergency. All I ask is that you credit me, maybe link to this blog entry or something. That'd be nice and I know people on the Internet are nice.

Best regards to you and your "friends". ;-)

Various resources I used: