PDA

View Full Version : Inet یا Winsock و دریافت سورس سایت با پ%ر%و%ک% س% ی



_behnam_
یک شنبه 06 شهریور 1390, 22:40 عصر
سلام دوستان
میخوام سورس یه سایت رو با پ%ر%و%ک% س% ی بدست بیارم کسی سورسی یا اطلاعاتی در این مورد داره؟


ممنون/

محسن واژدی
دوشنبه 07 شهریور 1390, 14:36 عصر
سلام علیکم
برای گرفتن سورس سایت میتوانید از سورس زیر بجای Inet یا Winsock استفاده کنید:

Option Explicit
Private Declare Function InternetOpen _
Lib "wininet.dll" _
Alias "InternetOpenA" (ByVal sAgent As String, _
ByVal lAccessType As Long, _
ByVal sProxyName As String, _
ByVal sProxyBypass As String, _
ByVal lFlags As Long) As Long

Private Declare Function InternetOpenUrl _
Lib "wininet.dll" _
Alias "InternetOpenUrlA" (ByVal hOpen As Long, _
ByVal sUrl As String, _
ByVal sHeaders As String, _
ByVal lLength As Long, _
ByVal lFlags As Long, _
ByVal lContext As Long) As Long

Private Declare Function InternetReadFile _
Lib "wininet.dll" (ByVal hFile As Long, _
ByVal sBuffer As String, _
ByVal lNumBytesToRead As Long, _
lNumberOfBytesRead As Long) As Integer

Private Declare Function InternetCloseHandle _
Lib "wininet.dll" (ByVal hInet As Long) As Integer

Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const INTERNET_OPEN_TYPE_DIRECT = 1
Private Const INTERNET_OPEN_TYPE_PROXY = 3
Private Const INTERNET_FLAG_RELOAD = &H80000000
Public Function GetWebContents(ByVal sUrl As String) As String
Dim hOpen As Long

Dim hOpenUrl As Long

Dim bDoLoop As Boolean

Dim bRet As Boolean

Dim sReadBuffer As String * 2048

Dim lNumberOfBytesRead As Long

Dim sBuffer As String

hOpen = InternetOpen("vb", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)

hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)

bDoLoop = True

While bDoLoop

sReadBuffer = vbNullString
bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)

If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
DoEvents
Wend

If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
GetWebContents = sBuffer

End Function

Private Sub Command1_Click()
Text2 = GetWebContents("http://google.com")
End Sub

موفق باشید

_behnam_
سه شنبه 08 شهریور 1390, 14:35 عصر
نه محسن جون منظورم این بود که چطور با پروکسی سورس رو دریافت کنم؟

crazyfull
یک شنبه 20 شهریور 1390, 11:08 صبح
Microsoft Winhttp Services, version5.1 رو تو قسمت رفرنس تيک بزنيد و بعد:


Private WithEvents Http1 As WinHttp.WinHttpRequest


Private Sub Form_Load()
Set Http1 = New WinHttp.WinHttpRequest
Http1.Option(WinHttpRequestOption_EnableRedirects) = False 'ghyre faeal kardan Auto Redirect
End Sub

Private Sub Command1_Click()
Http1.Open "GET", "http://fileup.xp3.biz/1.php", True
Http1.SetRequestHeader "Accept", "*/*"
Http1.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
'Http1.SetRequestHeader "Connection", "Close"
Http1.SetRequestHeader "Cache-Control", "no-cache"
Http1.SetProxy 2, "127.0.0.1:9666" '<===ip va porte http proxy
Http1.Send
End Sub

Private Sub Http1_OnError(ByVal ErrorNumber As Long, ByVal ErrorDescription As String)
Text1.Text = "sock error: " & ErrorNumber & " " & ErrorDescription
End Sub

Private Sub Http1_OnResponseFinished()
'Text1.Text = Http1.GetAllResponseHeaders 'get http header
Text1.Text = Http1.ResponseText
End Sub

niksalehi
جمعه 06 دی 1392, 01:59 صبح
من میخواستم سورس یک صفحه رو از طریق وینساک و با پروکسی بگیرم!
میتونم با وینساک به پروکسی وصل بشم و ارسال کنم درخواستو، اما سورس صفحه رو نمیتونم دریافت کنم! ممنون میشم راهنمایی کنید.

samiasoft
جمعه 06 دی 1392, 03:18 صبح
Microsoft Winhttp Services, version5.1 رو تو قسمت رفرنس تيک بزنيد و بعد:


Private WithEvents Http1 As WinHttp.WinHttpRequest


Private Sub Form_Load()
Set Http1 = New WinHttp.WinHttpRequest
Http1.Option(WinHttpRequestOption_EnableRedirects) = False 'ghyre faeal kardan Auto Redirect
End Sub

Private Sub Command1_Click()
Http1.Open "GET", "http://fileup.xp3.biz/1.php", True
Http1.SetRequestHeader "Accept", "*/*"
Http1.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
'Http1.SetRequestHeader "Connection", "Close"
Http1.SetRequestHeader "Cache-Control", "no-cache"
Http1.SetProxy 2, "127.0.0.1:9666" '<===ip va porte http proxy
Http1.Send
End Sub

Private Sub Http1_OnError(ByVal ErrorNumber As Long, ByVal ErrorDescription As String)
Text1.Text = "sock error: " & ErrorNumber & " " & ErrorDescription
End Sub

Private Sub Http1_OnResponseFinished()
'Text1.Text = Http1.GetAllResponseHeaders 'get http header
Text1.Text = Http1.ResponseText
End Sub


اگر بخواهیم با همین روش سایت هم در WebBrowser1 نمایش داده بشه باید چیکار کرد؟

محسن واژدی
جمعه 06 دی 1392, 10:43 صبح
اگر بخواهیم با همین روش سایت هم در WebBrowser1 نمایش داده بشه باید چیکار کرد؟

سورس گرفته شده را در متد WebBrowser1.Document.Write قرار دهید، برای مثال:
Private Sub Form_Load()
WebBrowser1.Navigate "about:blank"
End Sub


Private Sub Command1_Click()
WebBrowser1.Document.Write ("In the Name of Allah")
End Sub
موفق باشید

niksalehi
جمعه 06 دی 1392, 15:13 عصر
راه حلی برای مشکل من نیست؟ یعنی نمیشه سورس یک سایت رو با وینساک و از طریق پروکسی گرفت؟ :-؟

یه مشکل دیگه اینکه من میخوام با Winsock1_DataArrival سورس سایت رو بگیرم! اما چیزی که بر میگرده اینه:



HTTP/1.0 200 OK
Content-Encoding: gzip
Vary: Accept-Encoding
Date: Fri, 27 Dec 2013 13:15:53 GMT
Server: LiteSpeed
Set-Cookie: PHPSESSID=825c6a40e7d8e5010ad443f80291254f; path=/
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Fri, 27 Dec 2013 13:15:53 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html
Content-Length: 20
X-Cache: MISS from localhost
X-Cache-Lookup: MISS from localhost:3128
Via: 1.0 localhost (squid/3.1.19)
Connection: keep-alive

میشه کاری کرد به جای کد بالا سورس html صفحه برگرده؟

samiasoft
جمعه 06 دی 1392, 15:52 عصر
سورس گرفته شده را در متد WebBrowser1.Document.Write قرار دهید، برای مثال:
Private Sub Form_Load()
WebBrowser1.Navigate "about:blank"
End Sub


Private Sub Command1_Click()
WebBrowser1.Document.Write ("In the Name of Allah")
End Sub
موفق باشید

متوجه نشدم در متد WebBrowser1.Document.Write باید چی قرار بدم

niksalehi
جمعه 06 دی 1392, 16:06 عصر
متوجه نشدم در متد WebBrowser1.Document.Write باید چی قرار بدم

باید سورس گرفته شده رو به جای عبارت ("<b>In the Name of Allah</b>") قرار بدین!
مثلا:



Private Sub Command1_Click()
WebBrowser1.Document.Write (text1)
End Sub

text1 حاوی سورس صفحه ی گرفته شده اس.