Rabu, 15 April 2015

Cara Membuat Plink Agar Bisa Auto Reconnect Otomatis (Putty Link)

Cara Buat Plink Agar Auto Reconnect 2015
Cara Membuat Plink Agar Bisa Auto Reconnect Otomatis, Plink atau lebih dikenal dengan Putty Link = Plink adalah program berbasis teks link yang dimana fungsi ini dijalankan dengan perintah batchfiles pada command pro di windows bawaan kita dengan begitu pada dasarnya program ini menjalankan program dengan memanfaatkan program yang ada pada windows kita seperti halnya RDP atau remot desktop, jadi saya rasa ketika anda membutuhkan postingan ini saya anggap anda memahami dengan judul postingan kali ini. ok bagi anda yang ingin membuat single plink atau multi plink bisa baca baca di untuk single plink lihat di tutorial Cara Membuat Tunnel Plink Pengganti Bitvise dan Proxifier dan untuk yang multi plink bisa dilihat di Cara Membuat Tunnel Multi Plink 2015 ok dari kedua contoh tutorial tersebut menurut anda apa yang paling mencolok dari segi perbedaannya, yang paling mencolok dari kedua perbedaan yang single dan multi plink tersebut adalah terletak pada komponen doscommand, jadi jika anda hanya menggunakan single plink dia akan menggunakan 1 doscommand dan jika dia menggunakan multi plink misal 2 plink dia akan menggunakan 2 doscommand dan seterusnya, tetapi pada kenyataannya yang multi plink juga mau 1 hingga 5 login ssh tetap anda akan menggunakan 1 ssh yang sama nah pada tutorial yang multi plink yang saya berikan jika anda jeli maka anda bisa menggunakan 2 akun ssh yang berbeda tetapi dalam 1 koneksi, jika anda jeli karena kodenya memang dipisahkan, kalau anda mau login hingga beberapa plink dengan 1 ssh anda tidak usah mengurutkan banyak kode seperti halnya yang ada pada postingan multi plink saya, jika anda ingin login plink beberapa plink tetapi dengan 1 akun yang sama untuk penambahan kodenya sangat sederhana sekali lakukan saja seprti anda membuat multi injek, contoh:

 var
Reg: TRegistry;
Path: String;
cmd1: String;
proxymetode: Integer;
proxy: string;
UserName,password,porthost,host,portproxy:string;
Proxifier,zonkplink : string;
begin
Proxifier:='zonksel\Proxifier.exe';
zonkplink:='zonksel\zonksel\zonksel.ppx silent-load';
shellexecute(handle,'open',pchar(Proxifier),pchar(plinkplonk),nil,SW_HIDE);
username:=Edit1.Text ;
password:=Edit2.Text;
host:=Edit3.Text;
porthost:=Edit4.Text;
proxy:=Edit5.Text;
portproxy:=Edit6.Text;
Button2.Enabled := true;
Button1.Enabled := false;
if CheckBox1.Checked then
proxymetode:=3
else
begin
proxymetode:=0;
end;
Reg := Tregistry.CReate;

try
with Reg do
begin
RootKey:=HKEY_CURRENT_USER;
Path := '\Software\SimonTatham\PuTTY\Sessions\'+host;

If Not KeyExists(Path) Then
Begin
OpenKey(Path,True);
WriteInteger('Present', 1);
WriteString('HostName', host);
WriteInteger('PortNumber', strToInt(porthost));
WriteInteger('PingInterval', 0);
WriteInteger('PingIntervalSecs', 10);
WriteInteger('TCPNoDelay', 1);
WriteInteger('TCPKeepalives', 1);
WriteInteger('ProxyMethod', proxymetode);
WriteString('ProxyHost', proxy);
WriteInteger('ProxyPort', strToInt(portproxy));
WriteString('Cipher', 'blowfish');
End else
Begin
OpenKey(Path,False);
WriteInteger('Present', 1);
WriteString('HostName', host);
WriteInteger('PortNumber', strToInt(porthost));
WriteInteger('PingInterval', 0);
WriteInteger('PingIntervalSecs', 10);
WriteInteger('TCPNoDelay', 1);
WriteInteger('TCPKeepalives', 1);
WriteInteger('ProxyMethod', proxymetode);
WriteString('ProxyHost', proxy);
WriteInteger('ProxyPor', strToInt(portproxy));
WriteString('Cipher', 'blowfish');
End;
End;
Finally
Reg.closekey;
Reg.Free;
End;
CMD1:=extractfilepath(application.exename)+'zonksel\Plink.exe -v -N -C -D 1080 ' +username+ '@' +host+ ' -P ' +porthost+ ' -pw ' +password;
DosCommand1.CommandLine:=CMD1;
DosCommand1.OutputLines := Memo1.Lines;
DosCommand1.Execute;
end;

Contoh diatas adalah untuk single plink, bagi anda yang ingin membuat multi plink dengan 1 akun ssh yang sama anda tidak usah mengulang kodenya dari awal diatas hingga akhir yang perlu anda lakukan adalah menambahkan perintah batchnya saja dengan perintah command yang berbeda, dsi delphi anda tinggal tambahkan doscommand berapa plink yang ingin anda buat, contohnya misal menjadi 2 atau 3 plink tetapi dengan 1 akun ssh yang sama, saya ambil lagi contoh diatas.

 var
Reg: TRegistry;
Path: String;
cmd1: String;
proxymetode: Integer;
proxy: string;
UserName,password,porthost,host,portproxy:string;
Proxifier,zonkplink : string;
begin
Proxifier:='zonksel\Proxifier.exe';
zonkplink:='zonksel\zonksel\zonksel.ppx silent-load';
shellexecute(handle,'open',pchar(Proxifier),pchar(plinkplonk),nil,SW_HIDE);
username:=Edit1.Text ;
password:=Edit2.Text;
host:=Edit3.Text;
porthost:=Edit4.Text;
proxy:=Edit5.Text;
portproxy:=Edit6.Text;
Button2.Enabled := true;
Button1.Enabled := false;
if CheckBox1.Checked then
proxymetode:=3
else
begin
proxymetode:=0;
end;
Reg := Tregistry.CReate;

try
with Reg do
begin
RootKey:=HKEY_CURRENT_USER;
Path := '\Software\SimonTatham\PuTTY\Sessions\'+host;

If Not KeyExists(Path) Then
Begin
OpenKey(Path,True);
WriteInteger('Present', 1);
WriteString('HostName', host);
WriteInteger('PortNumber', strToInt(porthost));
WriteInteger('PingInterval', 0);
WriteInteger('PingIntervalSecs', 10);
WriteInteger('TCPNoDelay', 1);
WriteInteger('TCPKeepalives', 1);
WriteInteger('ProxyMethod', proxymetode);
WriteString('ProxyHost', proxy);
WriteInteger('ProxyPort', strToInt(portproxy));
WriteString('Cipher', 'blowfish');
End else
Begin
OpenKey(Path,False);
WriteInteger('Present', 1);
WriteString('HostName', host);
WriteInteger('PortNumber', strToInt(porthost));
WriteInteger('PingInterval', 0);
WriteInteger('PingIntervalSecs', 10);
WriteInteger('TCPNoDelay', 1);
WriteInteger('TCPKeepalives', 1);
WriteInteger('ProxyMethod', proxymetode);
WriteString('ProxyHost', proxy);
WriteInteger('ProxyPor', strToInt(portproxy));
WriteString('Cipher', 'blowfish');
End;
End;
Finally
Reg.closekey;
Reg.Free;
End;
CMD1:=extractfilepath(application.exename)+'zonksel\Plink.exe -v -N -C -D 1080 ' +username+ '@' +host+ ' -P ' +porthost+ ' -pw ' +password;
DosCommand1.CommandLine:=CMD1;
DosCommand1.OutputLines := Memo1.Lines;
DosCommand1.Execute;
CMD2:=extractfilepath(application.exename)+'zonksel\Plink.exe -v -N -C -D 2080 ' +username+ '@' +host+ ' -P ' +porthost+ ' -pw ' +password;
DosCommand2.CommandLine:=CMD2;
DosCommand2.OutputLines := Memo1.Lines;
DosCommand2.Execute;
CMD3:=extractfilepath(application.exename)+'zonksel\Plink.exe -v -N -C -D 3080 ' +username+ '@' +host+ ' -P ' +porthost+ ' -pw ' +password;
DosCommand3.CommandLine:=CMD3;
DosCommand3.OutputLines := Memo1.Lines;
DosCommand3.Execute;
end;

Contoh diatas adalah dengan 3 plink (multi plink dengan 3 plink) perhatikan saja perbedaannya dimana, tetapi sebelum anda melakukan hal tersebut alangkah baiknya anda pisahkan dulu log datanya dari setiap 1 plink yang ada diatas contoh 3 plink jadi anda buat dulu 3 memo juga untuk setiap 1 plinknnya, perhatikan saja tulisan Memo1.Lines, alasan dipisahkan dulu untuk memastikan bahwa setiap 1 plink bisa berjalan dengan baik kalau misal dari ketiga plink tersebut sudah sinkron jalan semua anda tinggal menggabungkannya kembali dengan 1 memo.lines,  jadi sebelum anda membuat plink agar auto reconnect otomastis contoh diatas yang akan kita gunakan.

Untuk membuat plink agar bisa automatis reconnect kita akan membuat perintah error yang akan selalu berilang ulang untuk loping, tidak sepeti di bitvise ada isian untuk perintah reconnectnya, alasan yang paling umum agar plink bisa di reconnect otomatis adalah, mungkin anda ingin menggunakannya tanpa paket data dan tanpa pulsa karena plink plink yang tidak bisa auto reconnect dengan kartu yang tanpa pulsa akan sulit untuk loginnya, jadi mungkin itu salah satu alasan kenapa anda ingin membuat plink agar bisa auto reconnect otomatis.

Langkah Pertama yang harus anda lalukan adalah mencari tahu berapa plink yang anda gunakan saya asumsikan anda hanya single plink saja, silahkan buka project anda , lalu double klik tombol LOGIN/START/ON saya tidak tahu untuk tombol startnya anda pakai tulisan apa jadi klik saja tombol mulainnya saja, lalu temukan kode seperti dibawah ini: (perhatikan code lengkapnya diatas)

WriteString('Cipher', 'blowfish');
End;
End;
Finally
Reg.closekey;
Reg.Free;
End;

kode diatas hanya sebagai patokan untuk mencari kode yang akan anda gunakan sebagai bahannya nanti, yang perlu anda perhatikan adalah kode setelahnya, contoh:

CMD1:=extractfilepath(application.exename)+'zonksel\Plink.exe -v -N -C -D 1080 ' +username+ '@' +host+ ' -P ' +porthost+ ' -pw ' +password;
DosCommand1.CommandLine:=CMD1;
DosCommand1.OutputLines := Memo1.Lines;
DosCommand1.Execute;


mungkin dari beberapa contoh source kode plink akan banyak yang berbeda jadi itu hanya sebagai patokan saja, nah kode tersebutlah yang harus anda pasang ulang dengan membuat procedure baru, caranya klik doscommand1

Cara Buat Plink Agar Auto Reconnect 2015


procedure TForm1.DosCommand1NewLine(Sender: TObject; NewLine: String;
  OutputType: TOutputType);
var
  cmd1: String;
begin
if (pos('network error',NewLine)>0) or (pos('FATAL ERROR',NewLine)>0) then
begin
Memo1.Clear;
Sleep($0001);
CMD1:=extractfilepath(application.exename)+'zonksel\Plink.exe -v -N -C -D 1080 ' +username+ '@' +host+ ' -P ' +porthost+ ' -pw ' +password;
DosCommand1.CommandLine:=CMD1;
DosCommand1.OutputLines := Memo1.Lines;
DosCommand1.Execute;
end;
  Memo1.Lines.Add(newline);
end;

Kode yang dicetak biru adalah kode yang saya ambil dari contoh yang sebelumnya paling atas, jadi itulah contoh auto reconnectnya dengan memanfaatkan kesalahan perintah network error dan FATAL ERROR yang ada di batch putty link itu sendiri, untuk kode variable 

var
  cmd1: String; // kode ini gak harus dipasang demikian jika pada variable utamanya sudah anda pasang.

if (pos('network error',NewLine)>0) or (pos('FATAL ERROR',NewLine)>0) then // kode ini sesuaikan dengan apa yang munculnya errror di putty log anda, dan cara diatas lalukan juga pada doscommand yang lainnya yang mungkin ingin anda reconnect jika anda membuat banyak multi plink.

zonksel\Plink.exe Kode tersebut yang dimana file plink.exe saya ada berada didalam folder zonksel kalau misal file plink.exe anda ada berada pada folder namaanda jadi panggil saja dengan kode namaanda\plink.exe semoga anda paham dan kalau file plink.exe berada 1 baris dengan software plinknya maka yang perlu anda panggil adalah langsung plink.exe langsung jadi secara harfiah dan logikanya konsep shellapi itu seperti itu.. semoga apa yang saya sampaikan bermanfaat.

Catatan Tambahan Seputar Kegagalan Dalam Prakteknya:

1.Pertanyaan: apakah jika injek belum diaktifkan plink akan terlihat reconnect?
Jawaban: walaupun injek belum diaktifkan jika opsi reconectnya benar log plink akan terlihat reconnect walaupun agak lambat, dan jika pilink diaktifkan dan injek diaktifkan maka log reconnect akan semakin cepat.

2.Pertanyaan: Kenapa Saya setelah mengikuti panduan diatas ko masih tetap tidak bisa mau rekoneknya?
Jawaban: Jika anda telah mengikuti panduan diatas kemungkinan ada duplikate string yang mengarah pada batch file user, host, pass, proxy yang akan dipanggil, dan jika anda membuat plink dari panduan yang saya berikan silahkan  perhatikan kode dibawah ini;

 var
Reg: TRegistry;
Path: String;
cmd1: String;
proxymetode: Integer;
proxy: string;
UserName,password,porthost,host,portproxy:string; // kode ini harus anda pindahkan dan hapus dan pindahkan ke variable form utama contoh dibawah:

 private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  UserName,password,porthost,host,portproxy:string; // pindahkan kodenya kesini
  CMD1: string;
  zonksel: string;
implementation

3.Pertanyaan: Kenapa Plink Saya setelah bisa konek tetapi sulit di matikan atau bahkan membuat komputer saya menjadi lola, atau mendadak menjadi aneh atau terlihat komputer saya menjadi berat atau bahkan plink tersebut tidak atau susah di offkan?
jawaban: matikan dulu secara paksa via task manager lalu perbaiki codingnnya terutama kode kill,nya kurang tepat baik itu untuk kill plink maupun proxifiernya, biasanya itu terjadi plink anda login lebih dari 1 tetapi proses kill out tidak membuat plink yang anda gunakan log out dan ketika anda login kembali maka plink sebelumnya belum mati dan reconnect terus menerus, klik tombol OFF/DISCONNECT/STOP atau anda kasih tulisan apa di program anda lalu cek kembali kode kill berikut:

var
Reg: TRegistry;
Path: String;
host:string;
begin
Killtask('Proxifier.exe');
Killtask('Plink.exe');

4.Pertanyaan: seperti apa sih kalau plink yang kita gunakan tandanya sudah on atau sudah terhubung ke servers atau sudah bisa digunakan?
jawaban: tandanya akan terlihat tulisan "Local port 1080 SOCKS dynamic forwarding" angka 1080 tergantung port plink yang anda gunakan.

Saya kira Tulisan ini dicukupkan dahulu semoga apa yang disampaikan bermanfaat dan itu saja informasi seputar  Cara Membuat Plink Agar Bisa Auto Reconnect Otomatis (Putty Link) Terima kasih.

Postingan selanjutnya; Konsep dan Cara Replace Header Pada Program Delphi 7

CAPSA (Cara Apa Saja) Informasi Download Lagu dan Proxy Free Full Version Blogger