Amele Programming Reloaded

Evde kullandigim internet baglantisi bana biraz acayip geliyor. DHCP ile IP aldiktan sonra bir de ISP nin login sayfasina girip kullanici adi ve sifre ile login olmak gerekiyor. Bu tip baglantiya ne isim veriliyor hic bilmiyorum. Sorun su ki boot esnasinda DHCP sorgusu yapip IP almama ragmen firefox ile login sayfasina girip sifre girene kadar internete ulasamiyor olmak sinir bozucu. Ornegin NTP ile saat guncellemesi yapamiyorum bu durumda. Ya da en azindan gatget tarzi ufak uygulamalar desktop acildigi anda nete ulasamiyor ve sorunlarla karsilasiyorum. Login sayfasinin yapisi oldukca basit. Kullanici adi ve sifrenin girildigi basit bir form submit ediliyor. Bir kac sene once Sesli’de kullandigim Mechanize ile yine ayni yapiyi kullanarak ufak bir script hazirladim. Yine Perl ile. Zaten neredeyse Sesli’deki betigin aynisini kullandim denebilir.Perl ile parsing yapmayi bilsem bash script’e de hic gerek kalmayacak ama su anda onu ogrenmeye ne vaktim ne de hevesim var. Yine yalnizca kendi isimi gorecek, benden baska kimsenin ne ihtiyac duyacagi ne de deneyebilecegi birsey cikti ortaya.

#!/usr/bin/perl
use strict;
use WWW::Mechanize;
use HTTP::Cookies;
 
my $username = $ARGV[0];
my $password = $ARGV[1];
my $adres = "http://login.iam.ne.jp";
 
#çıktının yazılacağı dosya
my $linkfile = "out.html";
 
my $mech = WWW::Mechanize->new();
$mech->cookie_jar(HTTP::Cookies->new());
$mech->get($adres);
$mech->form_name('LoginUser');    #form adı LoginUser
$mech->field(username => $username);    #kullanıcı adının yazılacağı değişken username
$mech->field(passwd => $password);    #şifrenin yazılacağı değişken passwd
$mech->click();
 
my $link_page = $mech->content();
open(OUTFILE, ">$linkfile");
print OUTFILE "$link_page";
close(OUTFILE);
#!/bin/bash
#Degiskenleri tanimla
USER=kullanici-adim-buraya
PASS=sifrem-de-buraya
LINK=link.html
OUT=out.html
LOG=log
DIR=/home/tarik/login
 
cd $DIR
 
./gir $USER $PASS
 
export logintime=`cat $OUT | grep "Login Time"  | awk '{print $5 " " $6 " "  $7 " "  $8 $9 $10}' | cut -d '<' -f1`
 
if test "x$logintime" = x
then
echo "Connection Problem. User : $USER . "
echo "Check your settings!"
export errordate=`date`
echo "Failed  : $USER $errordate" >> $LOG
else
echo "Connection Established"
echo "Login Time : $logintime"
echo "Success : $USER $logintime" >> $LOG
fi

Ilk betigi “gir” ismiyle kaydedip ikinci betik icerisinden cagiriyorum. Baslikta da soyledigim gibi “Amele” programlama :) Login esnasinda calismasi icin de .bashrc’ye ekledim betigin yolunu. Aslinda en guzeli bir init script yazmak. Hemen net.eth0 ardindan kosacak bir init scripti daha mantikli. Bu yolla NTP update yapamam haliyle. O kismi hala sorunlu. Ama en azindan masaustu acildiginda internet calisir durumda oluyor. Bu da bir asama. Simdi bir problem daha kaldi. Evdeyken DHCP kullaniyorum. Ardindan yukaridaki betikle login olmam gerekiyor. Labda statik IP kullaniyorum. Okulun diger kisimlarinda Wireless kullaniyorum, yine DHCP. Bunlarin tumu icin ayri profiller olusturmam gerekiyor /etc/conf.d/net dosyasinda. Su anda gozume biraz karisik gozukuyor. Bu betigin de yalnizca evden baglanirken calisiyor olmasini istiyorum. Su anda hic icimden gelmiyor :( Belki yakinda duzgun bir ayar yaparim.

Related Posts
  1. Program işime yaramasa da takipteyim :D

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">