# Native Code > برنامه نویسی در 6 VB > سوال: بازدید اتوماتیک از سایت؟

## niksalehi

سلام دوستان گل  :بوس: 

یه سوالی تو ذهنمه چن وقته به جواب نمیرسم  :لبخند گشاده!: 
http://www.uploade.ir/images/13cqhzk5wfi51afawca.png

از اونجایی که میدونم برنامه با vb6 نوشته شده اینجا تاپیک زدم ( جای بهتری بود؟  :لبخند گشاده!:  )
این عکس رو ببینید!
چطوری میشه همچین کاری کرد؟
البته نه دقیقا مثل این برنامه ها!
این برنامه با سا**کس هایی که میدیم بهش، به ادرس سایت یا وبلاگی که بهش میدیم کانکت میشه و بازدید سایت رو بالا میبره! ( با ایپی های مختلف)
میخواستم ببینم از چه ابزاری استفاده شده؟
نحوه کارش چطوره یا ...

----------


## MohammadGh2011

> سلام دوستان گل 
> 
> یه سوالی تو ذهنمه چن وقته به جواب نمیرسم 
> http://www.uploade.ir/images/13cqhzk5wfi51afawca.png
> 
> از اونجایی که میدونم برنامه با vb6 نوشته شده اینجا تاپیک زدم ( جای بهتری بود؟  )
> این عکس رو ببینید!
> چطوری میشه همچین کاری کرد؟
> البته نه دقیقا مثل این برنامه ها!
> ...


سلام عليکم

شما اگه ميخواين بازديد سايت يا وبلاگ زياد بشه،کاري نداره نياز به يه Webbrowser و Timer دارين.تو گوگل جستجو کنيد،فکر کنم سورسش باشه.


موفق باشيد

----------


## niksalehi

بله این برنامه رو که میفرمایید نوشتم
فقط خواستم طرز کار این برنامه که عکسش رو گذاشتم بدونم!

----------


## Farbod EZRaeL

> بله این برنامه رو که میفرمایید نوشتم
> فقط خواستم طرز کار این برنامه که عکسش رو گذاشتم بدونم!


بیا دوست عزیز اگه نفمیدی توضیح بدم :متفکر: 

Dim x As Integer
Private Sub Command1_Click()
WebBrowser1.Navigate2 (Text1.Text)
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
WebBrowser1.Stop
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
x = x + 1
If x = 15 Then
WebBrowser1.Refresh
x = 0
End If
End Sub

----------


## niksalehi

ممنونم اما فکر کنم منظورمو بد رسوندم!

این برنامه سرعتش خیلی بیشتر از لود کردن وب براوزر هستش!
کارش اینه که بهش لیست س-ا-ک-س میدیم و یه ادرس میدیم، میاد با اون ایپی هایی که بهش دادیم از ادرس مورد نظر دیدن میکنه!
این کار رو خیلی سخت میشه با وب براوزر انجام داد که هر بازدید حدود 30 ثانیه طول میکشه شایدم بیشتر...
میخوام ببینم تو این نرم افزار طریقه کار چطوره؟ قطعا وب براوزر نیست!

----------


## MahmoodGH

> ممنونم اما فکر کنم منظورمو بد رسوندم!
> 
> این برنامه سرعتش خیلی بیشتر از لود کردن وب براوزر هستش!
> کارش اینه که بهش لیست س-ا-ک-س میدیم و یه ادرس میدیم، میاد با اون ایپی هایی که بهش دادیم از ادرس مورد نظر دیدن میکنه!
> این کار رو خیلی سخت میشه با وب براوزر انجام داد که هر بازدید حدود 30 ثانیه طول میکشه شایدم بیشتر...
> میخوام ببینم تو این نرم افزار طریقه کار چطوره؟ قطعا وب براوزر نیست!


اتفاقا فکر کنم کار با WebBrowser فکر  کنم باشه. چون هم راحت تر میشه ساکس رو بهش تزریق کرد و هم راحت تر میشه رفت به مقصد. در مورد سرعت هم WebBrowser بر حسب تجربه ای که دارم شاید در بازدید اول و دوم کمی سرعتش پایین باشه اما وقتی که چند بار اینکار رو انجام بده هربار سرعتش بیشتر میشه.

----------


## niksalehi

ممنونم از توجهتون
یعنی winsock یا inet نیست؟
با این دو ابزار میشه همچین کاری کرد؟

----------


## MahmoodGH

> ممنونم از توجهتون
> یعنی winsock یا inet نیست؟
> با این دو ابزار میشه همچین کاری کرد؟


به نقل از یکی از دوستان :




> اضافه شدن آمار وبلاگ ناشی از ارجاع شدن یک لینک به آمارگیر وبگذر بعد از  باز شدن وبلاگ هست (فرم آمارگیر Iframe است)، که در نتیجه آن یک شماره به  آمار اضافه میشود، اما وینساک صرفا درخواستی را به url ارسال و نتیجه را  دریافت میکنه، در این حالت هیچ تصویر و اسکریتی پردازش نمیشه و هیچ لینکی  هم ارجاع داده نمیشه
> برای افزایش آمار باید درخواست را به لینکی آمار ارسال کنین


پیشنهاد بنده همون استفاده از WebBrowser هست. من یکی ی دونه واسه خودم نوشتم. البته WebBrowser مشکلات خاص خودش رو هم داره. مثلا کمی کنده ولی در خیلی از زمینه ها عالیه. مثلا برای Set کردن پروکسی روش کافیه از کد زیر استفاده کنی :

این کد رو تو Module بنویس :

    'Module
    Option Explicit
     
    Private Type INTERNET_PER_CONN_OPTION
        dwOption As Long
        dwValue1 As Long
        dwValue2 As Long
    End Type
    Private Type INTERNET_PER_CONN_OPTION_LIST
        dwSize As Long
        pszConnection As Long
        dwOptionCount As Long
        dwOptionError As Long
        pOptions As Long
    End Type
    Private Const INTERNET_PER_CONN_FLAGS As Long = 1
    Private Const INTERNET_PER_CONN_PROXY_SERVER As Long = 2
    Private Const INTERNET_PER_CONN_PROXY_BYPASS As Long = 3
    Private Const PROXY_TYPE_DIRECT As Long = &H1
    Private Const PROXY_TYPE_PROXY As Long = &H2
    Private Const INTERNET_OPTION_REFRESH As Long = 37
    Private Const INTERNET_OPTION_SETTINGS_CHANGED As Long = 39
    Private Const INTERNET_OPTION_PER_CONNECTION_OPTION As Long = 75
    Private Declare Function InternetSetOption _
            Lib "wininet.dll" Alias "InternetSetOptionA" ( _
            ByVal hInternet As Long, ByVal dwOption As Long, _
            lpBuffer As Any, ByVal dwBufferLength As Long) As Long
     
    ' Set Proxy
     
    Public Function SetConnectionOptions(ByVal conn_name As String, ByVal proxy_full_addr As String) As Boolean
    ' conn_name: active connection name. (LAN = "")
    ' proxy_full_addr : eg "193.28.73.241:8080"
    Dim list As INTERNET_PER_CONN_OPTION_LIST
    Dim bReturn As Boolean
    Dim dwBufSize As Long
    Dim options(0 To 2) As INTERNET_PER_CONN_OPTION
    Dim abConnName() As Byte
    Dim abProxyServer() As Byte
    Dim abProxyBypass() As Byte
       
        dwBufSize = Len(list)
       
        ' Fill out list struct.
        list.dwSize = Len(list)
       
        ' NULL == LAN, otherwise connection name.
        abConnName() = StrConv(conn_name & vbNullChar, vbFromUnicode)
        list.pszConnection = VarPtr(abConnName(0))
       
        ' Set three options.
        list.dwOptionCount = 3
     
        ' Set flags.
        options(0).dwOption = INTERNET_PER_CONN_FLAGS
        options(0).dwValue1 = PROXY_TYPE_DIRECT Or PROXY_TYPE_PROXY
     
        ' Set proxy name.
        options(1).dwOption = INTERNET_PER_CONN_PROXY_SERVER
        abProxyServer() = StrConv(proxy_full_addr & vbNullChar, vbFromUnicode)
        options(1).dwValue1 = VarPtr(abProxyServer(0))  '//"http://proxy:80"
     
        ' Set proxy override.
        options(2).dwOption = INTERNET_PER_CONN_PROXY_BYPASS
        abProxyBypass() = StrConv("local" & vbNullChar, vbFromUnicode)
        options(2).dwValue1 = VarPtr(abProxyBypass(0))
     
        list.pOptions = VarPtr(options(0))
        ' Make sure the memory was allocated.
        If (0& = list.pOptions) Then
            ' Return FALSE if the memory wasn't allocated.
            Debug.Print "Failed to allocate memory in SetConnectionOptions()"
            SetConnectionOptions = 0
        End If
     
        ' Set the options on the connection.
        bReturn = InternetSetOption(0, INTERNET_OPTION_PER_CONNECTION_OPTION, list, dwBufSize)
     
        ' Free the allocated memory.
        Erase options
        Erase abConnName
        Erase abProxyServer
        Erase abProxyBypass
        dwBufSize = 0
        list.dwOptionCount = 0
        list.dwSize = 0
        list.pOptions = 0
        list.pszConnection = 0
        Call InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, ByVal 0&, 0)
        Call InternetSetOption(0, INTERNET_OPTION_REFRESH, ByVal 0&, 0)
        SetConnectionOptions = bReturn
    End Function
     
     
    ' Disable Proxy
     
    Public Function DisableConnectionProxy(ByVal conn_name As String) As Boolean
    ' conn_name: active connection name. (LAN = "")
    Dim list As INTERNET_PER_CONN_OPTION_LIST
    Dim bReturn As Boolean
    Dim dwBufSize As Long
    Dim options(0) As INTERNET_PER_CONN_OPTION
    Dim abConnName() As Byte
       
        dwBufSize = Len(list)
       
        ' Fill out list struct.
        list.dwSize = Len(list)
       
        ' NULL == LAN, otherwise connectoid name.
        abConnName() = StrConv(conn_name & vbNullChar, vbFromUnicode)
        list.pszConnection = VarPtr(abConnName(0))
       
        ' Set three options.
        list.dwOptionCount = 1
     
        ' Set flags.
        options(0).dwOption = INTERNET_PER_CONN_FLAGS
        options(0).dwValue1 = PROXY_TYPE_DIRECT
     
        list.pOptions = VarPtr(options(0))
        ' Make sure the memory was allocated.
        If (0 = list.pOptions) Then
            ' Return FALSE if the memory wasn't allocated.
            Debug.Print "Failed to allocate memory in DisableConnectionProxy()"
            DisableConnectionProxy = 0
        End If
     
        ' Set the options on the connection.
        bReturn = InternetSetOption(0, INTERNET_OPTION_PER_CONNECTION_OPTION, list, dwBufSize)
       
        ' Free the allocated memory.
        Erase options
        Erase abConnName
        dwBufSize = 0
        list.dwOptionCount = 0
        list.dwSize = 0
        list.pOptions = 0
        list.pszConnection = 0
        Call InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, ByVal 0&, 0)
        Call InternetSetOption(0, INTERNET_OPTION_REFRESH, ByVal 0&, 0)
        DisableConnectionProxy = bReturn
    End Function


برای فعال کردن پروکسی کد زیر :

    'Set Porxy to IE WebBrowser :D
    Dim conn_name As String, proxy_full_addr As String
    conn_name = ""
    proxy_full_addr = "89.218.65.38:3128"
    Call SetConnectionOptions(conn_name, proxy_full_addr)

که بجای 89.218.65.38:3128 باید آدرس پروکسی موردنظر خودتون رو بزارید.

برای غیرفعال کردنش هم از کد زیر استفاده کنید :

    Dim conn_name As String
    conn_name = ""
    Call DisableConnectionProxy(conn_name)

----------


## aradrobo

> به نقل از یکی از دوستان :
> ......
> .....
>     Call DisableConnectionProxy(conn_name)[/VB]


آیا میشه بگی در سی شارپ چطور میشه اینکار رو انجام داد ؟

----------


## alnajon

> به نقل از یکی از دوستان :
> 
> 
> 
> پیشنهاد بنده همون استفاده از WebBrowser هست. من یکی ی دونه واسه خودم نوشتم. البته WebBrowser مشکلات خاص خودش رو هم داره. مثلا کمی کنده ولی در خیلی از زمینه ها عالیه. مثلا برای Set کردن پروکسی روش کافیه از کد زیر استفاده کنی :
> 
> این کد رو تو Module بنویس :
> 
>     'Module
> ...


ببخشید میشه این سورس رو به سی شارپ هم تبدیل کنید !؟ خیلی احتیاج دارم . ممنون

----------

