7 Ekim 2012 Pazar

PHP Dilinde String İfadeyi Belirli Uzunluklarda Bölme – wordwrap Fonksiyonu


Dinamik bir internet sitesi yapmak, dinamik bir alt yapı gerektirmektedir. Bu dinamizm, programlama dilinin fonksiyonları ile sağlanır. wordwrap() fonksiyonu bu fonksiyonlardan biridir. Bir değeri belirli uzunlukla bölme işlevini görmektedir.
Sosyal paylaşım sitenizdeki üyeler, o anki durumlarını ileti haline getirebilecekleri alana diledikleri uzunlukta yazı yazmak isteyeceklerdir. Fakat siteyi tasarlayan kişi olarak bu bölüme belirli bir genişlik ve yükseklik ayırmak ve ölçülendirmek zorundasınızdır. Bu durumda üyelerin yazdığı yazıları, sitenin kendi ölçüleri doğrultusunda wordwrap() fonksiyonu ile bölerek tablo genişlemesinin ve site içerisindeki kaymalarının önüne geçmiş olursunuz. Aksi halde satır kaymaları ve tablo yapısında bozulmalar görülecektir.
?
1
2
3
4
5
6
wordwrap(
     Karakter katarı,
     Bölme sayısı,
     Bölme sonundaki satır sonu karakteri,
     Bölmek
)
Karakter Katarı, bölünecek olan verinin yerini göstermektedir. Bölme sayısı, bölünecek olan karakter katarının, kaç basamak sonra bölünmesi gerektiğini belirtir. Bölme sonundaki satır sonu karakteri ise isteğe bağlı olarak belirtilir ve her bölünen satır sonuna konulacak olan değeri belirtir. Bu genelde – ya da br tarzı değerler olur. Zira satır sonu bu iki değerle biter demek pek de yanlış olmayacaktır.
Bölmek parametresi, TRUE değeri alırsa, bölünecek olan karakter katarının bölme sayısı kadar basamak bölmek tek kural olmaktadır. Kelimenin yapısını bozmak pahasına kelimeyi bölecektir.
?
1
2
3
$ileti = "Bugün çok yoruldummmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm.";
echo wordwrap($ileti, 10, "
",TRUE);
Yukarıdaki örnek, wordwrap fonksiyonu ve parametrelerini göstermektedir.

Ekran Görüntüsü
Bu uygulamanın demo görüntüsünü incelemek için buraya tıklayınız.

27 Eylül 2012 Perşembe

Fuzuli ile İki String Arasındaki Levenshtein Uzaklığını Hesaplama

Geçtiğimiz aylarda yayınlanan Fuzuli Programlama Dili ve Yorumlayıcı'nın (Interpreter) ilk sürümünden itibaren gerek bu blog içerisinde, gerekse stdioe.blogspot.com İngilizce blog içerisinde Fuzuli ile ilgili tanıtıcı ve öğretici yazılar yazmaktayız. Bu yazıda da oldukça yararlı olan ve bir çoğumuzun bilip kullandığı levenshtein fonksiyonunu, Fuzuli içerisinde kullanıp iki string ifadenin arasındaki uzaklığı hesaplayacağız.

Fuzuli kodunda anlamadığınız yerleri http://fuzuliproject.org/docs/ adresinden Fuzuli Documentation başlığı altında araştırıp, http://fuzuliproject.org/index.php?node=tryonline adresindeki online interpreter üzerinde online olarak çalıştırıp çıktısını görebilirsiniz.


(require "nfl/io.nfl")
(require "nfl/string.nfl")
 
(print "Please enter a word for calculating distance: ")
(let word (readline))
 
(let Array (list "windows" "ubuntu" "android"))
 
(foreach i in Array
  (let distance (levenshtein word i))
  (println distance " for " i)
)

Yukarıdaki kodlar, Fuzuli ile yazılmıştır. Fuzuli kodları ile yazılan sayfalar, .fzl dosya formatında kaydedilir. Biz de yukarıdaki dosyamızı levenshtein.fzl adıyla kaydedelim. Şu an Fuzuli 'nin Linux ve Windows sürümleri mevcuttur. Ancak Windows sürümü limitlidir ve her paketi içermez. Levenshtein fonksiyonu ve konsolda kullanıcıdan girdi bekleyen readline, sırasıyla string ve io paketlerinde olduklarından, bizim örneğimizin çalışması için, bu fonksiyonları içeren bir Fuzuli versiyonu yeterli olacaktır. Windows limitli sürümü ise bu paketleri içerir.

Windows limitli sürümünü indirmek için : http://code.google.com/p/fuzuli/downloads/detail?name=fuzuli-0.1.10-Windows.zip&can=2&q=

Konsolda

fuzuli levenshtein.fzl

yazıp enter tuşuna bastığınızda





Yukarıdaki gibi ekran çıktılarını alacaksınız. İlk ekran çıktısında kullanıcı girdisi "fuzuli" olmuştur ve  levenshtein fonksiyonu windows, ubuntu ve android kelimeleriyle aradaki uzaklığı hesaplayıp ekrana sırasıyla 6, 5, 5 yazdırmıştır. Ancak ikinci ekran çıktısında kullanıcı girdisinin "android" olduğu görülmektedir. Dolayısıyla levenshtein fonksiyonu, son satırda "0" bulmuştur, zira android kelimesi ile android kelimesi arasındaki fark, sıfır (0) olacaktır.

Kod sentaksı ile ilgili sorularınızın cevaplarını http://fuzuliproject.org sitesinde bulabilir, Fuzuli Kılavuzunu ise android cihazınıza Google Market üzerinden indirebilirsiniz.

Bol fuzuli günler dilerim.

3 Temmuz 2012 Salı

Çoklu Dynamips Servisi için Dynagen Örnek Çalışması


http://stdioe-tr.blogspot.com/2012/07/coklu-cisco-router-simulasyonu-icin.html bağlantısında Çoklu Cisco Router Similasyonu için bir Dynagen & Dynamips örnek çalışmasını anlatmıştım. Bu yazımda ise, birden fazla dynamips servisini birden kullanan bir dynagen uygulaması anlatacağım. Ayrıca dynagen performans optimizasyonu hakkında bir detaydan bahsedeceğim


Bu örnekte 3 adet dynamips servisimiz olacak. Her dynamips servisi ise 3 adet sanal yönlendirici barındıracak ve 9 sanal yönlendirici de birbirine bağlı olacaklar. İlk dynamips servisi R1, R2 ve R3 yönlendiricilerini, ikinci dynamips servisi R4, R5 ve R6 yönlendiricilerini ve üçüncü dynamips servisimiz ise R7, R8 ve R9 yönlendiricilerini içerecekler. Bu 9 yönlendirici konfigüresyon dosyasında 3 erli guruplar halinde ayrı gibi görünselerde, mantıksal olarak her biri bir diğerine bağlı olacaklar.


Topolojimiz ve bağlantılar;


1-) dynamips servislerinin farklı port numaraları ile başlatılması,

ismail@ismail-ThinkPad-T410:~$ dynamips -H 7200 &
ismail@ismail-ThinkPad-T410:~$ dynamips -H 7301 &
ismail@ismail-ThinkPad-T410:~$ dynamips -H 7402 &

2-) dynamips konfigürasyon dosyasının topolojiye göre oluşturulması,

###############################1-Dynamips-1#############################
[localhost:7200]
  udp=10000
  workingdir = /tmp/workingdy1

[[3725]]
  image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin
  ram = 128
  #idlepc =  ?? # We will talk about this, later.
  ghostios = true
  sparsemem = true
  idlemax = 100 
  disk0=128

 [[Router R1]]
  model = 3725
  console = 2001
  autostart = false
  S0/0 = R2 S0/0

 [[Router R2]]
  model = 3725
  console = 2002
  autostart = false
  S0/0 = R1 S0/0
  S0/1 = R3 S0/0

 [[Router R3]]
  model = 3725
  console = 2003
  autostart = false
  WIC0/0 = WIC-2T
  S0/0 = R2 S0/1 
  S0/1 = R7 S0/1

###############################1-Dynamips-1#############################

###############################2-Dynamips-2#############################
[localhost:7201]
  udp=11000
  workingdir = /tmp/workingdy2

[[3725]]
  image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin
  ram = 128
  #idlepc =  ?? # We will talk about this, later.
  ghostios = true
  sparsemem = true
  idlemax = 100 
  disk0=128

 [[Router R4]]
  model = 3725
  console = 2004
  autostart = false
  S0/0 = R5 S0/0
  S0/1 = R8 S0/1

 [[Router R5]]
  model = 3725
  console = 2005
  autostart = false
  S0/0 = R4 S0/0
  S0/1 = R6 S0/0

 [[Router R6]]
  model = 3725
  console = 2006
  autostart = false
  S0/0 = R5 0/1

###############################2-Dynamips-2#############################

###############################3-Dynamips-3#############################
[localhost:7202]
  udp=12000
  workingdir = /tmp/workingdy3

[[3725]]
  image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin
  ram = 128
  #idlepc =  ?? # We will talk about this, later.
  ghostios = true
  sparsemem = true
  idlemax = 100 
  disk0=128

 [[Router R7]]
  model = 3725
  console = 2007
  autostart = false
  S0/0 = R9 S0/0
  S0/1 = R3 S0/1

 [[Router R8]]
  model = 3725
  console = 2008
  autostart = false
  WIC0/0 = WIC-2T
  S0/0 = R9 S0/1
  S0/1 = R4 S0/1

 [[Router R9]]
  model = 3725
  console = 2009
  autostart = false
  S0/0 = R7 0/0
  S0/1 = R8 0/0

###############################3-Dynamips-3#############################

Yukarıdaki konfigürasyon metnini sample2.net ismi ile /tmp dizini altına kayıt ettim. Yine bu örnekte de working dizinlerine ihtiyacım olacak, oluşturuyorum:
ismail@ismail-ThinkPad-T410:~$ mkdir /tmp/workingdy1
ismail@ismail-ThinkPad-T410:~$ mkdir /tmp/workingdy2
ismail@ismail-ThinkPad-T410:~$ mkdir /tmp/workingdy3

3-) Working dizinleri hazır. Şimdi dynagen servisi başlatılmaya hazır. Sorun çözme hakkında bir şeyler göstermek için bir hata yapıyorum,

ismail@ismail-ThinkPad-T410:~$ dynagen /tmp/sample2.net 
Reading configuration file...

Shutdown in progress...
Shutdown completed.
Shutdown in progress...
Shutdown completed.
Shutdown in progress...
Shutdown completed.
*** Warning:  Connecting R6 S0/0 to R5 0/1 resulted in:
 malformed destination interface: R5 0/1
*** Warning:  Connecting R9 S0/0 to R7 0/0 resulted in:
 malformed destination interface: R7 0/0
*** Warning:  Connecting R9 S0/1 to R8 0/0 resulted in:
 malformed destination interface: R8 0/0

*** Error:  errors during loading of the topology file, please correct them
Shutdown in progress...
Error: could not communicate with dynamips server localhost
It may have crashed. Check the dynamips server output.
Exiting...
Press ENTER to exit
[3]+  Segmentation fault      (core dumped) dynamips -H 7202
ismail@ismail-ThinkPad-T410:~$ 

Normalde bir hattın her iki ucu için de bağlantı tanımlayabilirsiniz. Ancak görüldüğü gibi dynagen servisi bu çift tanımlamayı kabul etmiyor. R5 yönlendiricisinde, " S0/1 = R6 S0/0" bağlantısını kaldırıyorum. Aynı şekilde R7 yönlendiricisinden, "  S0/0 = R9 S0/0" bağlantısını ve R8 yönlendiricisinden, " S0/0 = R9 S0/1" bağlantısını kaldırıyorum. Bu düzenlemeden sonra sample2.net dosyası aşağıdaki gibi son halini alıyor;






###############################1-Dynamips-1#############################
[localhost:7200]
  udp=10000
  workingdir = /tmp/workingdy1

[[3725]]
  image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin
  ram = 128
  #idlepc =  ?? # We will talk about this, later.
  ghostios = true
  sparsemem = true
  idlemax = 100
  disk0=128

 [[Router R1]]
  model = 3725
  console = 2001
  autostart = false
  S0/0 = R2 S0/0

 [[Router R2]]
  model = 3725
  console = 2002
  autostart = false
  #S0/0 = R1 S0/0
  S0/1 = R3 S0/0

 [[Router R3]]
  model = 3725
  console = 2003
  autostart = false
  #S0/0 = R2 S0/1
  S0/1 = R7 S0/1

###############################1-Dynamips-1#############################

###############################2-Dynamips-2#############################
[localhost:7201]
  udp=11000
  workingdir = /tmp/workingdy2

[[3725]]
  image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin
  ram = 128
  #idlepc =  ?? # We will talk about this, later.
  ghostios = true
  sparsemem = true
  idlemax = 100
  disk0=128

 [[Router R4]]
  model = 3725
  console = 2004
  autostart = false
  S0/0 = R5 S0/0
  S0/1 = R8 S0/1

 [[Router R5]]
  model = 3725
  console = 2005
  autostart = false
  #S0/0 = R4 S0/0
  S0/1 = R6 S0/0

 [[Router R6]]
  model = 3725
  console = 2006
  autostart = false
#  S0/0 = R5 0/1

###############################2-Dynamips-2#############################

###############################3-Dynamips-3#############################
[localhost:7202]
  udp=12000
  workingdir = /tmp/workingdy3

[[3725]]
  image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin
  ram = 128
  #idlepc =  ?? # We will talk about this, later.
  ghostios = true
  sparsemem = true
  idlemax = 100
  disk0=128

 [[Router R7]]
  model = 3725
  console = 2007
  autostart = false
  S0/0 = R9 S0/0
  #S0/1 = R3 S0/1

 [[Router R8]]
  model = 3725
  console = 2008
  autostart = false
  S0/0 = R9 S0/1
  #S0/1 = R4 S0/1

 [[Router R9]]
  model = 3725
  console = 2009
  autostart = false
#  S0/0 = R7 0/0
#  S0/1 = R8 0/0

###############################3-Dynamips-3#############################


dynamips servislerini 7200, 7201 ve 7202 portları üzerinden zaten çalıştırmışdık. Ancak dynagen servisimiz başarısı olduğu için, bazı dynamips servislerinin de çökmüş olma olasılığı sözkonusu. Bu sebeple öncelikle dynamips servislerinin tamamının çalışmaya devam ettiğinden emin olmalıyız.



ismail@ismail-ThinkPad-T410:~$ ps -ef | grep dynamips
ismail    3811  3756  1 10:15 pts/0    00:00:14 dynamips -H 7200
ismail    3829  3756  1 10:16 pts/0    00:00:14 dynamips -H 7201
ismail    4017  3756  0 10:27 pts/0    00:00:00 grep --color=auto dynamips


Aldığımız cevaba göre, bir dynamips servisi çökmüş ve diğer ikisi çalışmaya devam ediyor. Ben tüm dynamips servislerini öldürüp, hepsini baştan çalıştırmayı tercih ediyorum. Bunun için 3811 ve 3829 PID noları ile tek tek öldürmek de mümkün (kill -9 3811 gibi..) ancak pkill ile tümünü birden öldürmek daha pratik geliyor,



ismail@ismail-ThinkPad-T410:~$ pkill dynamips
[1]-  Terminated              dynamips -H 7200
[2]+  Terminated              dynamips -H 7201
ismail@ismail-ThinkPad-T410:~$ 


ve şimdi çalışan dynamips servisi kalmadı,
onları tekrar baştan başlatabilirim ve dynagen topolojisini yükleyebilirim;



ismail@ismail-ThinkPad-T410:~$ dynamips -H 7201 &
ismail@ismail-ThinkPad-T410:~$ dynamips -H 7202 &
ismail@ismail-ThinkPad-T410:~$ dynamips -H 7203 &
ismail@ismail-ThinkPad-T410:~$ dynagen /tmp/sample2.net 
Reading configuration file...
...
...
...
Dynagen management console for Dynamips and Pemuwrapper 0.11.0
Copyright (c) 2005-2007 Greg Anuzelli, contributions Pavel Skovajsa

=> 


Nihayetinde dynagen topologiyi yükledi. Yukarıda dynagen konsoluna düştüğümüzü görüyorsunuz. Burada "start R1" gibi yönlendirici isimlerine start komutları göndererek onları tek tek başlatabiliriz. Ya da "start /all" ile hepsini birden başlatmak da mümkün.

Bilgisayarımızda 9 adet sanal yönlendirici çalışıyor.. Sanırım şimdi performans için biraz optimizasyon yapmak gerekebilir. Bunun için "idlepc" parametresinin değerini tespit edip dynagen konfigürasyon dosyasında yerine yazmamız gerekiyor. idlepc değeri her yönlendirici için farklı değerler alabilir ve onu öğrenmek için ilgili yönlendiriciyi başlatıp, "idlepc get Rx" komutu ile ilgili yönlendirici için idlepc değerlerini listeyebiliriz.


=> start R1
=> idlepc get R1
Please wait while gathering statistics...

Please wait while gathering statistics...
Done. Suggested idling PC:
   0x60c08128 (count=22)
   0x60c08164 (count=33)
   0x60c08180 (count=35)
   0x60c081c0 (count=66)
   0x62b2823c (count=45)
   0x60c08bf8 (count=23)
   0x60c08c20 (count=20)
   0x614b0e34 (count=38)
   0x62b2b134 (count=20)
   0x6026bca4 (count=30)
Restart the emulator with "--idle-pc=0x60c08128" (for example)
   1: 0x60c08128 [22]
   2: 0x60c08164 [33]
   3: 0x60c08180 [35]
   4: 0x60c081c0 [66]
   5: 0x62b2823c [45]
   6: 0x60c08bf8 [23]
   7: 0x60c08c20 [20]
   8: 0x614b0e34 [38]
   9: 0x62b2b134 [20]
  10: 0x6026bca4 [30]
Potentially better idlepc values marked with "*"
Enter the number of the idlepc value to apply [1-10] or ENTER for no change: 
No changes made
=> 


Eğer listelenen idlepc değerlerinden herhangi birinin önünde "*" karakteri var ise, bu önerilen değerdir, kullanabiliriz. Ağer henüz bir değer önerilmemiş ise, "idlepc get Rx" komutu ile tekrar değerler üretilmesini isteyebiliriz. "*" 'li satır tespit ettiğimizde hedefimize ulaşmışız demektir.

Çoklu Cisco Router Simulasyonu için Dynagen & Dynamips Örnek Çalışması


     Eğer tek bir cisco router simule etmek istiyorsanız sadece dynamips kullanmanız yeterlidir. Ancak birden fazla Cisco yönlendiriciyi birbirine bağlayıp bir topolojiyi ayağa kaldırmak istiyorsanız (sanal / simulasyon ortamında) bu durumda dynagen'i de işe katmanız gerekir.


     Ben bu örnekte Ubuntu 12.04 kullandım. Tariflerim bu işletim sistemi için olsada dynagen çalıştırabileceğiniz tüm işletim sistemleri için rehberlik edebilir. Öncelikle dynagen (ve bağımlılık kontrolü sayesinde dynamips de) uygulamasını yüklüyorum.

ismail@ismail-ThinkPad-T410:~$ sudo apt-get install dynagen 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  dynamips python-configobj
The following NEW packages will be installed:
  dynagen dynamips python-configobj
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,070 kB/1,418 kB of archives.
After this operation, 4,263 kB of additional disk space will be used.
Do you want to continue [Y/n]? 
Get:1 http://tr.archive.ubuntu.com/ubuntu/ precise/main python-configobj all 4.7.2+ds-3build1 [233 kB]
Get:2 http://tr.archive.ubuntu.com/ubuntu/ precise/multiverse dynagen all 0.11.0-6 [836 kB]
Fetched 1,070 kB in 0s (1,495 kB/s)
Selecting previously unselected package dynamips.
(Reading database ... 206573 files and directories currently installed.)
Unpacking dynamips (from .../dynamips_0.2.7-0.2.8RC2-5ubuntu1_amd64.deb) ...
Selecting previously unselected package python-configobj.
Unpacking python-configobj (from .../python-configobj_4.7.2+ds-3build1_all.deb) ...
Selecting previously unselected package dynagen.
Unpacking dynagen (from .../dynagen_0.11.0-6_all.deb) ...
Processing triggers for man-db ...
Processing triggers for doc-base ...
Processing 1 added doc-base file...
Registering documents with scrollkeeper...
Setting up dynamips (0.2.7-0.2.8RC2-5ubuntu1) ...
Setting up python-configobj (4.7.2+ds-3build1) ...
Setting up dynagen (0.11.0-6) ...
Processing triggers for python-support ...
ismail@ismail-ThinkPad-T410:~$ 


     İhtiyacımız olan uygulamalar artık işletim sistemimizde mevcut. Şimdi de örnek network topolojimize geçelim,
     Bu örneğe göre 3 adet Cisco Router simule edeceğiz. Bunun için tek bir dynamips servisinin yeterli olacağını düşünüyorum.

1-) dynamips servisinin başlatılması;

ismail@ismail-ThinkPad-T410:~$ dynamips -H 7100 &
[1] 16919
Cisco Router Simulation Platform (version 0.2.8-RC2-amd64)
Copyright (c) 2005-2007 Christophe Fillot.
Build date: Jan 18 2011 19:25:29

Hypervisor TCP control server started (port 7100).

ismail@ismail-ThinkPad-T410:~$ ps -ef | grep dynamips
ismail   16919  8265  6 17:59 pts/2    00:00:00 dynamips -H 7100
ismail   16934  8265  0 17:59 pts/2    00:00:00 grep --color=auto dynamips
ismail@ismail-ThinkPad-T410:~$ 

"dynamips -H 7100 &" komutu ile dynamips servisini 7100 nollu porttan çalıştırıp, "&" kısmı le başlatılan bu servisi arka plana atmış oluyoruz. "ps -ef | grep dynamips" komutu ile ise, başlattığımız servisi kontrol ediyoruz. Aldığımız cevap işlern younda gittiğini gösteriyor.


2-) dynagen topoloji dosyasının oluşturulması;


# [1 nolu dynamips başlangıç]

[localhost:7100]
  udp=10000
  workingdir = /tmp/working

[[3725]]
  image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin
  ram = 128
#  idlepc = ?? Bunun hakkında daha sonra konuşacağız
  ghostios = true
  sparsemem = true
  idlemax = 100
  disk0=128

 [[Router R1]]
  model = 3725
  console = 2001
  autostart = false
#  F0/0 =
  S0/0 = R2 S0/0

 [[Router R2]]
  model = 3725
  console = 2002
  autostart = false
#  F0/0 =
  S0/0 = R1 S0/0
  S0/1 = R3 S0/0

 [[Router R3]]
  model = 3725
  console = 2003
  autostart = false
  S0/0 = R2 S0/1
# F0/0 =

# [1 nolu dynamips bitiş]

[localhost:7100] ile başlayan ilk bölüm çalışmaktan olan dynamips servisi ile bağlantı kurmak içindir. Çalışırken bazı dosyalar oluşturulacak, working dizini bu dosyaların yolunu belirliyor.


[3725] ile işaret edilen ikinci bölüm ise, hangi cisco modeli cihaz oluşturduğumuz ifade ediyor. Bu model cihazın kullandığı ios imajı ve ram gibi bazı donanımsal bilgiler de bu bölümde tanımlanmaktadır. 


Topoloji dosyaımızın son bölümü ise, sanal yönlendiricilerimizin tanımlandıkları yer. İkinci bölümde birden fazla model tanımlayabilir ve bu bölümde her bir sanal yönlendiricimiz için faklı bir model profili kullanabilirdik. Yine yönlendirici tanımlarken, konsol bağlantı port numarası, otomatik başlatılacak mı ve arabilirim (interface) bağlantıları da tanımlanmaktadır.


"working" dizinimizi /tmp aldında oluşturduktan sonratopoloji dosyamızı "/tmp/sample1.net" ismi ile kaydedip, dynagen 'i başlatıyoruz;



ismail@ismail-ThinkPad-T410:~$ vim /tmp/sample1.net
{write dynagen configuration file content as above INSTANCE1}
ismail@ismail-ThinkPad-T410:~$ 
ismail@ismail-ThinkPad-T410:~$ dynagen /tmp/sample1.net 
Reading configuration file...

Shutdown in progress...
Shutdown completed.
CPU0: carved JIT exec zone of 64 Mb into 2048 pages of 32 Kb.
NVRAM is empty, setting config register to 0x2142
C3725 instance 'ghost-c3725-adventerprisek9-mz.124-15.T13.bin-localhost.ghost' (id 3):
  VM Status  : 0
  RAM size   : 128 Mb
  NVRAM size : 128 Kb
  IOS image  : /tmp/c3725-adventerprisek9-mz.124-15.T13.bin

Loading ELF file '/tmp/c3725-adventerprisek9-mz.124-15.T13.bin'...
ELF entry point: 0x80008000

C3725 'ghost-c3725-adventerprisek9-mz.124-15.T13.bin-localhost.ghost': starting simulation (CPU0 PC=0xffffffffbfc00000), JIT enabled.

C3725 'ghost-c3725-adventerprisek9-mz.124-15.T13.bin-localhost.ghost': stopping simulation.
Network successfully loaded

Dynagen management console for Dynamips and Pemuwrapper 0.11.0
Copyright (c) 2005-2007 Greg Anuzelli, contributions Pavel Skovajsa

=> list
Name       Type       State      Server          Console   
R1         3725       stopped    localhost:7100  2001      
R2         3725       stopped    localhost:7100  2002      
R3         3725       stopped    localhost:7100  2003      
=> 
=> ?

Documented commands (type help <topic>):
========================================
capture  confreg  cpuinfo  export  hist    list  py      save   show   suspend
clear    console  end      filter  idlepc  no    reload  send   start  telnet 
conf     copy     exit     help    import  push  resume  shell  stop   ver    

=> 
=> start R1
Warning: Starting R1 with no idle-pc value
CPU0: carved JIT exec zone of 64 Mb into 2048 pages of 32 Kb.
C3725 instance 'R1' (id 0):
  VM Status  : 0
  RAM size   : 128 Mb
  NVRAM size : 128 Kb
  IOS image  : /tmp/c3725-adventerprisek9-mz.124-15.T13.bin

Loading ELF file '/tmp/c3725-adventerprisek9-mz.124-15.T13.bin'...
ELF loading skipped, using a ghost RAM file.
ELF entry point: 0x80008000

C3725 'R1': starting simulation (CPU0 PC=0xffffffffbfc00000), JIT enabled.
100-VM 'R1' started
=> 
=> start R2
Warning: Starting R2 with no idle-pc value
CPU0: carved JIT exec zone of 64 Mb into 2048 pages of 32 Kb.
NVRAM is empty, setting config register to 0x2142
C3725 instance 'R2' (id 1):
  VM Status  : 0
  RAM size   : 128 Mb
  NVRAM size : 128 Kb
  IOS image  : /tmp/c3725-adventerprisek9-mz.124-15.T13.bin

Loading ELF file '/tmp/c3725-adventerprisek9-mz.124-15.T13.bin'...
ELF loading skipped, using a ghost RAM file.
ELF entry point: 0x80008000

C3725 'R2': starting simulation (CPU0 PC=0xffffffffbfc00000), JIT enabled.
100-VM 'R2' started
=> start R3
Warning: Starting R3 with no idle-pc value
CPU0: carved JIT exec zone of 64 Mb into 2048 pages of 32 Kb.
NVRAM is empty, setting config register to 0x2142
C3725 instance 'R3' (id 2):
  VM Status  : 0
  RAM size   : 128 Mb
  NVRAM size : 128 Kb
  IOS image  : /tmp/c3725-adventerprisek9-mz.124-15.T13.bin

Loading ELF file '/tmp/c3725-adventerprisek9-mz.124-15.T13.bin'...
ELF loading skipped, using a ghost RAM file.
ELF entry point: 0x80008000

C3725 'R3': starting simulation (CPU0 PC=0xffffffffbfc00000), JIT enabled.
100-VM 'R3' started
=> 


Bir başka terminal açıp aşağıdaki komutu çalıştırdığımızda R1 yönlendiricisine erişeceğiz,



ismail@ismail-ThinkPad-T410:~$ telnet localhost 2001
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connected to Dynamips VM "R1" (ID 0, type c3725) - Console port

when press enter will appear this;

% Please answer 'yes' or 'no'.
Would you like to enter the initial configuration dialog? [yes/no]: 


Ctrl+C ile cisco'nun "initial configuration" sihirbazından çıkıyoruz;



Press RETURN to get started!


*Mar  1 00:00:03.843: %LINEPROTO-5-UPDOWN: Line protocol on Interface VoIP-Null0, changed state to up
*Mar  1 00:00:03.847: %LINEPROTO-5-UPDOWN: Line protocol on Interface IPv6-mpls, changed state to up
*Mar  1 00:00:03.927: %LINK-3-UPDOWN: Interface Serial0/0, changed state to up
*Mar  1 00:00:03.935: %LINK-3-UPDOWN: Interface Serial0/1, changed state to up
*Mar  1 00:00:04.927: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up
*Mar  1 00:00:04.935: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1, changed state to up
*Mar  1 00:00:32.927: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1, changed state to down
*Mar  1 00:01:26.839: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to down
*Mar  1 00:01:32.875: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up
*Mar  1 00:01:39.015: %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to administratively down
*Mar  1 00:0
Router>1:39.075: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
*Mar  1 00:01:40.115: %SYS-5-RESTART: System restarted --
Cisco IOS Software, 3700 Software (C3725-ADVENTERPRISEK9-M), Version 12.4(15)T13, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco Systems, Inc.
Compiled Wed 07-Apr-10 12:44 by prod_rel_team
*Mar  1 00:01:40.123: %SNMP-5-COLDSTART: SNMP agent on host Router is undergoing a cold start
*Mar  1 00:01:40.147: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down
*Mar  1 00:01:40.147: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
*Mar  1 00:01:40.159: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF
*Mar  1 00:01:40.159: %CRYPTO-6-GDOI_ON_OFF: GDOI is OFF
*Mar  1 00:01:40.951: %LINK-5-CHANGED: Interface Serial0/0, changed state to administratively down
*Mar  1 00:01:40.951: %LINK-5-CHANGED: Interface Serial0/1, changed state to administratively down
*Mar  1 00:01:41.951: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to down
*Mar  1 00:01:43.839: %IP-5-WEBINST_KILL: Terminating DNS process
Router>

2002 ve 2003 ile diğer yönlendiricilerin konsollarına da ulaşabiliriz. 

telnet localhost 2001
telnet localhost 2002
telnet localhost 2003