Google Chrome Zenmate fonksiyonu hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ahmetax
Üye
Mesajlar: 60
Kayıt: 14 Kas 2014 12:17

Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen ahmetax »

Web sitelerime uygulayacağım SEO çalışmalarını farklı IPlerle bağlanarak test etmek istiyorum.
(20 kadar wordpress-multisite sitem var. Yani hepsi aynı IP üzerinden çalışıyor.)
Bu testleri manuel yaparken Google Chrome ZenMate işime yarıyor. Ama manuel testler çok zamanımı alıyor.
Chrome'u araya sokmadan TWebBrowser üzerinden IP değiştirmeyi deneyen oldu mu? Mümkün mü?
Ya da -ücretsiz- IP değiştirmeyi sağlayan ve delphi ile kontrol edilebilen herhangi bir servis var mı?

(IP değiştirmeyi modemi resetleyerek yapmak çok zaman aldığı için pratik değil.
Ücretli IP servisleri için de ayırabileceğim bir kaynak yok.)

Her türlü - maddi kaynak gerektirmeyen- öneriye açığım.
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen G.Arkas »

EmbeddedWB kullanarak SetProxy olayı ile işi çözebilirsin.

Örnek;
http://stackoverflow.com/questions/1158 ... roxy-error
Resim
m_yaprakci

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen m_yaprakci »

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "ProxyServer"="<Proxy IP Adresinizi buraya yazın>:<Proxy Port>" "ProxyEnable"=dword:00000001

burada proxy değiştirmek için gerekli registry anahtarı var.
bunu registry e yazarsın delphi ile bir döngü içerisinde.
registry yazma ile ilgili kodlar forumda bolca var.
ahmetax
Üye
Mesajlar: 60
Kayıt: 14 Kas 2014 12:17

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen ahmetax »

G.Arkas yazdı:EmbeddedWB kullanarak SetProxy olayı ile işi çözebilirsin.

Örnek;
http://stackoverflow.com/questions/1158 ... roxy-error
Bileşenleri kurdum. Ancak kullanımı ile ilgili doküman bulamadım. Biraz kurcalamam gerekecek sanırım.
Teşekkürler.
ahmetax
Üye
Mesajlar: 60
Kayıt: 14 Kas 2014 12:17

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen ahmetax »

m_yaprakci yazdı:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "ProxyServer"="<Proxy IP Adresinizi buraya yazın>:<Proxy Port>" "ProxyEnable"=dword:00000001

burada proxy değiştirmek için gerekli registry anahtarı var.
bunu registry e yazarsın delphi ile bir döngü içerisinde.
registry yazma ile ilgili kodlar forumda bolca var.
Registry ile pek fazla çalışmadım.
Proxy değiştirince reboot falan gerekmiyordur umarım.
Deneyeceğim.
Teşekkürler.
ahmetax
Üye
Mesajlar: 60
Kayıt: 14 Kas 2014 12:17

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen ahmetax »

G.Arkas yazdı:EmbeddedWB kullanarak SetProxy olayı ile işi çözebilirsin.

Örnek;
http://stackoverflow.com/questions/1158 ... roxy-error
Merhaba G.Arkas,
EmbeddedWB bileşenlerini indirip kurdum ama, site kapandığı için dokümantasyona ulaşamıyorum.
İnternette de hep aynı linkler mevcut. Hiç doküman yok. Belki de benim gözümden kaçıyor.
Bildiğiniz doküman kaynağı var mı?
Teşekkürler.
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen G.Arkas »

EmbeddedWB için kendi help menüsüne bakabilirsin.

Birde şöyle bir yöntem var.

uses'a UrlMon, SHDocVw, WinInet ekle.

Kod: Tümünü seç

var
 PIInfo: PInternetProxyInfo;
begin
 New(PIInfo);
 PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
 PIInfo^.lpszProxy := PChar('socks=127.0.0.1:8080');
 PIInfo^.lpszProxyBypass := PChar('');
 UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo, SizeOf(Internet_Proxy_Info), 0);
 WebBrowser1.Navigate('http://google.com');
 Dispose(PIInfo);
Resim
ahmetax
Üye
Mesajlar: 60
Kayıt: 14 Kas 2014 12:17

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen ahmetax »

G.Arkas yazdı:EmbeddedWB için kendi help menüsüne bakabilirsin.

Birde şöyle bir yöntem var.

uses'a UrlMon, SHDocVw, WinInet ekle.

Kod: Tümünü seç

var
 PIInfo: PInternetProxyInfo;
begin
 New(PIInfo);
 PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
 PIInfo^.lpszProxy := PChar('socks=127.0.0.1:8080');
 PIInfo^.lpszProxyBypass := PChar('');
 UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo, SizeOf(Internet_Proxy_Info), 0);
 WebBrowser1.Navigate('http://google.com');
 Dispose(PIInfo);
Merhaba G.Arkas,
Verdiğin kodda 127.0.0.1 adresi olduğuna göre, lokal bir proxy sunucusu mu gerekiyor?
Hem orijinal haliyle, hem de 127.0.0.1 yerine bir proxy server adresi girerek denedim ama sonuç alamadım.
Neyse, proxy konusunu biraz daha hatmetmek yararlı olacak sanırım.
Bu sayede internetin daha önce hiç duymadığım özelliklerinden haberdar olabildim! :)
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen mrmarman »

Merhaba.

- Ben de kendim bizzat aktif olarak kullandığım kodu paylaşayım.

Kod: Tümünü seç

USES WinInet;

function SetProxyInfo( const ProxyConnect:boolean; const ByPassAddress, ProxyServer:String ):boolean;
Type
  PInternetPerConnOption = ^INTERNET_PER_CONN_OPTION;
  INTERNET_PER_CONN_OPTION = record
    dwOption: DWORD;
    case Integer of
      0: (dwValue: DWORD);
      1: (pszValue:LPTSTR);
      2: (ftValue: FILETIME);
    end;

  PInternetPerConnOptionList = ^INTERNET_PER_CONN_OPTION_LIST;
  INTERNET_PER_CONN_OPTION_LIST = record
    dwSize        :DWORD;
    pszConnection :LPTSTR;
    dwOptionCount :DWORD;
    dwOptionError :DWORD;
    pOptions      :PInternetPerConnOption;
  end;

Const
  INTERNET_PER_CONN_FLAGS               = 1;
  PROXY_TYPE_PROXY                      = $00000002;   // via named proxy
  PROXY_TYPE_DIRECT                     = $00000001;   // direct to net
  INTERNET_PER_CONN_PROXY_BYPASS        = 3;
  INTERNET_PER_CONN_PROXY_SERVER        = 2;
  INTERNET_OPTION_PER_CONNECTION_OPTION = 75;
var
    nSize : DWORD;
    List  : INTERNET_PER_CONN_OPTION_LIST;
    Option: array[0..2]   of   INTERNET_PER_CONN_OPTION;
begin
    nSize := sizeof(INTERNET_PER_CONN_OPTION_LIST);

    Option[0].dwOption      :=   INTERNET_PER_CONN_FLAGS;
    if  ProxyConnect then
        Option[0].dwValue   :=   PROXY_TYPE_PROXY
    else
        Option[0].dwValue   :=   PROXY_TYPE_DIRECT;

    Option[1].dwOption   :=   INTERNET_PER_CONN_PROXY_BYPASS;
    Option[1].pszValue   :=   PChar(ByPassAddress);

    Option[2].dwOption   :=   INTERNET_PER_CONN_PROXY_SERVER;
    Option[2].pszValue   :=   PChar(ProxyServer);

    List.dwSize   :=   sizeof(INTERNET_PER_CONN_OPTION_LIST);
    List.pszConnection   :=   nil;
    List.dwOptionCount   :=   3;
    List.dwOptionError   :=   0;
    List.pOptions   :=   @Option;

    result   :=  InternetSetOption(nil,   INTERNET_OPTION_PER_CONNECTION_OPTION,   @List,   nSize);
    InternetSetOption(nil, INTERNET_OPTION_REFRESH , nil, 0);
end;
Kullanımı ise şöyle :

Kod: Tümünü seç

procedure TForm1.BitBtn1Click(Sender: TObject);
Const
  ProxyServer = '127.0.0.1';
  ProxyPort   = '8080';
begin
  // Proxy Enable
  SetProxyInfo( True, '<local>', ProxyServer + ':' + ProxyPort );

  // Proxy Disable
  SetProxyInfo( False, '', '');
end;
Resim
Resim ....Resim
ahmetax
Üye
Mesajlar: 60
Kayıt: 14 Kas 2014 12:17

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen ahmetax »

Merhaba mrmarman,
Senin kod sorunsuz çalıştı görünüyor.
Ancak Uygulama kısmında belirttiğin Proxy Disable fonksiyonunu bir başka tuşa atadım.
Ayrıca 127.0.0.1:8080 yerine çalışan bazı proxy adreslerini ve portlarını koydum.
Enable fonksiyonunu çalıştırınca test programının sorguladığı IP, proxy IP olarak dönüyor.
Disable fonksiyonunu çalıştırınca da kablonetin atadığı normal IP geliyor.
Eğer proxy için hatalı bir IP tanımlarsam, hata kodu dönüyor.
Proxy sadece etkin webbrowser için geçerli. Bir başka browser çalıştırdığımda normal IP alıyorum.
Tüm PC için proxy etkin olsun istersem, sanırım registry ile oynamam gerekecek.
Proxy mekanizmasını şimdi daha iyi anlamaya başladım.
Teşekkürler. İyi çalışmalar.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen mrmarman »

ahmetax yazdı: Proxy sadece etkin webbrowser için geçerli. Bir başka browser çalıştırdığımda normal IP alıyorum.
Tüm PC için proxy etkin olsun istersem, sanırım registry ile oynamam gerekecek.
Yanlışın olmasın.
Ben TRT'deki proxy için bunu kullanıyorum. Cihazda Chrome da olsa Explorer da olsa Firefox da olsa aynı proxy'yi görüyor.
Tahminim odur ki, sen diğer browser'in hangisi ise manuel proxy tanımlamış olmalısın. Kaç farklı türde browserın varsa onların ayarlarına girip manuel yerine otomatik proxy seçersen tek bir kaynak olarak Windows'unkini, yani bu ayarlar kullanılır. Aksi halde sendeki durum söz konusu olur. :idea:
Resim
Resim ....Resim
ahmetax
Üye
Mesajlar: 60
Kayıt: 14 Kas 2014 12:17

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen ahmetax »

mrmarman yazdı:
ahmetax yazdı: Proxy sadece etkin webbrowser için geçerli. Bir başka browser çalıştırdığımda normal IP alıyorum.
Tüm PC için proxy etkin olsun istersem, sanırım registry ile oynamam gerekecek.
Yanlışın olmasın.
Ben TRT'deki proxy için bunu kullanıyorum. Cihazda Chrome da olsa Explorer da olsa Firefox da olsa aynı proxy'yi görüyor.
Tahminim odur ki, sen diğer browser'in hangisi ise manuel proxy tanımlamış olmalısın. Kaç farklı türde browserın varsa onların ayarlarına girip manuel yerine otomatik proxy seçersen tek bir kaynak olarak Windows'unkini, yani bu ayarlar kullanılır. Aksi halde sendeki durum söz konusu olur. :idea:
Evet, haklısın!
Kontrolü Chrome ile yapıyordum ve onun üzerinde zenmate yüklüydü. Aktif olmadığı halde sanırım kontrolü elden bırakmıyor. Tamamen "disabled" edince o da aynı proxy adresini göstermeye başladı. IEExplorer da aynı şekilde.
Uyarın için çok teşekkürler. Yoksa kontrol etmek aklıma bile gelmeyecekti.
Peki, proxy'nin devreye girip girmediğini nasıl kontrol edebiliriz?
Lokal proxy için bir gecikme olmuyordur herhalde ama, uzak ülkelere ait proxy'lerde epey bir beklemek gerekiyor. Bu süreyi kontrol etmenin, yani sürecin tamamlandığını ve proxynin değiştiğini program kontrolüyle anlamanın bir yolu var mı?
Tekrar teşekkürler.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen mrmarman »

Merhaba.

- Bunu anlamak için çok uzağa gitmene gerek yok, basit bir WHATISMYIP sorgusu sana istediğin sonucu verecektir.
- Bir kaç gün önce buna ilişkin bir soru sorulmuştu. bu linkteki cevabı değerlendirebilirsin.
- Yerel bir ağ sorunun yoksa; sonuç dönmezse bağlantı sorunu var demektir. Bu da proxy tanımlı ise Internete çıkış vermiyor anlamına gelir. :idea:

EK:
- Cümlende yanlış anlaşılıp anlaşılmadığını teyid için söylemek istediğim bir husus : Proxy ayarı sadece sistemdeki Browser'ların nereye nasıl bakacağına ilişkin bir ayardır. Bir bekleme vs. olmaz söz konusu değil.

- Bu işlerle uğraşan birisi olarak şunu mu anlamalıydım : Beklemekten kasıt, bir VPN sunucusuna bağlanarak internete çıkmak ise ona proxy denmiyor. Bunun için tümüyle başka bir işlem yapılıyor. Yine IP adresin proxy'deki gibi farklılaşıyor ama proxy değildir. Kavramlar karışmasın. :idea:

Örnek : www.vpnbook.com
Resim
Resim ....Resim
ahmetax
Üye
Mesajlar: 60
Kayıt: 14 Kas 2014 12:17

Re: Google Chrome Zenmate fonksiyonu hakkında

Mesaj gönderen ahmetax »

mrmarman yazdı:Merhaba.

- Bunu anlamak için çok uzağa gitmene gerek yok, basit bir WHATISMYIP sorgusu sana istediğin sonucu verecektir.
- Bir kaç gün önce buna ilişkin bir soru sorulmuştu. bu linkteki cevabı değerlendirebilirsin.
- Yerel bir ağ sorunun yoksa; sonuç dönmezse bağlantı sorunu var demektir. Bu da proxy tanımlı ise Internete çıkış vermiyor anlamına gelir. :idea:

EK:
- Cümlende yanlış anlaşılıp anlaşılmadığını teyid için söylemek istediğim bir husus : Proxy ayarı sadece sistemdeki Browser'ların nereye nasıl bakacağına ilişkin bir ayardır. Bir bekleme vs. olmaz söz konusu değil.

- Bu işlerle uğraşan birisi olarak şunu mu anlamalıydım : Beklemekten kasıt, bir VPN sunucusuna bağlanarak internete çıkmak ise ona proxy denmiyor. Bunun için tümüyle başka bir işlem yapılıyor. Yine IP adresin proxy'deki gibi farklılaşıyor ama proxy değildir. Kavramlar karışmasın. :idea:

Örnek : www.vpnbook.com
Tekrar Merhaba,
Konu vpn ile ilgili değil.
Küçük bir test programı yazdım.
1. buton: Proxy on
2. buton: Proxy off
3. buton: IP Test (TWebBrowser ile whatismyip.com veya whatismyipaddress.com kullanarak)
...
Yukarıdaki satırları yazarken, sorunu farklı yerde aradığımı farkettim.
Sanırım gecikmenin kaynağı proxy değil, proxynin tarif ettiği yolun uzaması nedeniyle Test işleminin geç tamamlanmasında.
Eğer yerel bir proxy kullansaydım, böyle bir gecikme hiç olmayacaktı.
Bu durumda son sorumu geri alıyorum.
VPN konusuna ise sanırım bir müddet sonra gireceğim. Hele proxy olayını tamamen çözeyim de... :)
Çok teşekkürler. Bana gerçekten çok zaman kazandırdınız.
İyi Pazarlar.

Not: İnternette, sizinkine çok benzer bir başka kod buldum.
Ek bir satır kullanıyor.

Kod: Tümünü seç

    result   :=  InternetSetOption(nil,   INTERNET_OPTION_PER_CONNECTION_OPTION,   @List,   nSize);
    InternetSetOption(nil, INTERNET_OPTION_SETTINGS_CHANGED , nil, 0);  //internetteki ek satır
    InternetSetOption(nil, INTERNET_OPTION_REFRESH , nil, 0);
Kodun tamamı şu adreste: http://stackoverflow.com/questions/4802 ... -in-delphi

Ek satırın gerçek işlevini tam bilemiyorum ama, belki ilginizi çeker diye yazayım dedim.
Cevapla