#!/usr/bin/python
import urllib2
import sys
import re
import base64
from urlparse import urlparse
theurl = 'https://mail.google.com/mail/feed/atom/'
# if you want to run this example you'll need to supply
# a protected page with your username and password
username = 'kullanici_adi'
password = 'parola'
req = urllib2.Request(theurl)
try:
handle = urllib2.urlopen(req)
except IOError, e:
# here we *want* to fail
pass
else:
# If we don't fail then the page isn't protected
print "This page isn't protected by authentication."
sys.exit(1)
if not hasattr(e, 'code') or e.code != 401:
# we got an error - but not a 401 error
print "This page isn't protected by authentication."
print 'But we failed for another reason.'
sys.exit(1)
authline = e.headers['www-authenticate']
# this gets the www-authenticate line from the headers
# which has the authentication scheme and realm in it
authobj = re.compile(
r'''(?:\s*www-authenticate\s*:)?\s*(\w*)\s+realm=['"]([^'"]+)['"]''',
re.IGNORECASE)
# this regular expression is used to extract scheme and realm
matchobj = authobj.match(authline)
if not matchobj:
# if the authline isn't matched by the regular expression
# then something is wrong
print 'The authentication header is badly formed.'
print authline
sys.exit(1)
scheme = matchobj.group(1)
realm = matchobj.group(2)
# here we've extracted the scheme
# and the realm from the header
if scheme.lower() != 'basic':
print 'This example only works with BASIC authentication.'
sys.exit(1)
base64string = base64.encodestring(
'%s:%s' % (username, password))[:-1]
authheader = "Basic %s" % base64string
req.add_header("Authorization", authheader)
try:
handle = urllib2.urlopen(req)
except IOError, e:
# here we shouldn't fail if the username/password is right
print "It looks like the username or password is wrong."
sys.exit(1)
thepage = handle.read()
print thepage
Temmuz 23, 2008
python ile http basic authentication
Temmuz 20, 2008
parolasız sudo
$ sudo visudokomutunu çalıştırın. Bu komut /etc/sudoers dosyasını değiştirmenize yardımcı olacak.
Eğer bir kullanıcıya parolasız sudo izni vermek istiyorsanız,
kullanici_adi ALL=(ALL) NOPASSWD:ALLsatırını ekleyin.
Eğer bir gruba bu izni vermek istiyorsanız, şu satiri ekleyin:
%grup_adi ALL=(ALL) NOPASSWD:ALL
Temmuz 17, 2008
Asus X80L ve Atheros

Asus X80L serisi bir dizüstü bilgisayara Ubuntu yükledim. Her ne kadar Ubuntu, "restricted drivers" olarak kablosuz cihazı görmüş olduğu söylemiş olsa da bir türlü kablosuz cihazımı ifconfig çıktısında göremiyordum.
Cihazın lspci çıktısı aşağıda.
# lspci | grep Ethernet
02:00.0 Ethernet controller: Atheros Communications, Inc. AR5006EG 802.11 b/g Wireless PCI Express Adapter (rev 01)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
İlk satır kablosuz ikin ci satır kablolu ağ kartımı gösteriyor. Bu kablosuz ağ kartının aynı zamanda Asus EeePC'lerde de kullanıldığını da not düşmek isterim.
Bunda sonra aşağıdaki adımlar izleyerek gerekli driver'i kurabiliriz.
sudo m-a prepare
wget 'http://snapshots.madwifi.org/special/madwifi-nr-r3366+ar5007.tar.gz'
tar -zxvf madwifi-nr-r3366+ar5007.tar.gz
cd madwifi-ng-r3366+ar5007/
make
sudo make install
sudo echo ath_pci >> /etc/modules
sudo reboot
Temmuz 02, 2008
HP ProLiant ML110 G5 ve Debian

Bir 'HP ProLiant ML110 G5' sunucuya debian kurmam gerekti. Debian etch netinstall tercih ettim. Bu sunuya amd64 kurulum gerekiyor. Kurumu netten yapmak gerekiyordu ama ağ kartını görmeyince temel sistemi kurdum. Kurduktan sonra, ağ kartının kullandığı tg3 modülünün zaten var olduğunu gördüm ama bir işe yaramıyordu anlaşılan eski sürümdü. Bu sebeple, tg3'ün kaynak kodunu bulduktan sonra, kaynak kodu tekrar derlemek durumunda kaldım. Benim kendi makinem 32 bit olduğundan debian/amd64 için chroot ortamı oluşturmak pek de anlamlı olmadı derleme yapmak için. Cross platform araçları yükleyerek yapabilirdim belki ama o kadar vakit kaybetmek istemedim. Sunucuyu Ubuntu/64bit ile açıp, debian sistemime chroot yaptım ve derleme ortamını "m-a prepare" ile oluşturdum. Bundan sonra tekrar debian sistemime
döndüm. Gerekli düzenlemeleri yaptıktan sonra (/usr/src/linux yanlış yeri gösteriyordu mesela) kaynak kodumu derledim. Derlenmiş tg3 modülünü ve kaynak kodu burada bulabilirsiniz.
