<pre id="jbbnp"><rp id="jbbnp"></rp></pre>

    [使用介紹]GO語言如何測試ip代理?

    發布時間:2020-05-24 關注熱度:°C

      GO語言如何檢測ip代理?有的時候我們找到的ip代理并非都是可用的,用過免費代理的就知道這個道理,而有些服務差的代理服務商,他們的IP質量也堪憂。

    GO語言如何測試ip代理

      我們使用爬蟲的時候需要大量代理,但是并不是所有的代理都是有效的。所以在使用代理前,我們應該先檢測下代理是否可用。

      我們可以使用http.Transport設置代理來訪問某個測試地址,如果返回的狀態碼為200,說明這個代理是可用的。

      為了提升代理檢測效率,測試地址盡量使用數據量比較小的站點:

      例如:https://icanhazip.com 和 https://httpbin.org/get

      package main

      import (

      "fmt"

      "log"

      "net/http"

      "net/url"

      "strings"

      "time"

      )

      func ProxyTest(proxy_addr string) (Speed int, Status int) {

      //檢測ip代理訪問地址

      var testUrl string

      //判斷傳來的ip代理是否是https

      if strings.Contains(proxy_addr, "https") {

      testUrl = "https://icanhazip.com"

      } else {

      testUrl = "http://icanhazip.com"

      }

      // 解析代理地址

      proxy, err := url.Parse(proxy_addr)

      //設置網絡傳輸

      netTransport := &http.Transport{

      Proxy: http.ProxyURL(proxy),

      MaxIdleConnsPerHost: 10,

      ResponseHeaderTimeout: time.Second * time.Duration(5),

      }

      // 創建連接客戶端

      httpClient := &http.Client{

      Timeout: time.Second * 10,

      Transport: netTransport,

      }

      begin := time.Now() //判斷代理訪問時間

      // 使用ip代理訪問測試地址

      res, err := httpClient.Get(testUrl)

      if err != nil {

      log.Println(err)

      return

      }

      defer res.Body.Close()

      speed := int(time.Now().Sub(begin).Nanoseconds() / 1000 / 1000) //ms

      //判斷是否成功訪問,如果成功訪問StatusCode應該為200

      if res.StatusCode != http.StatusOK {

      log.Println(err)

      return

      }

      return speed, res.StatusCode

      }

      func main() {

      var speed, status = ProxyTest("http://124.205.155.151:9090")

      if status == 200 {

      fmt.Println(speed, status)

      } else {

      fmt.Println("代理不可用")

      }

      }

      如果大家需要穩定能夠使用的ip代理,那么,IP海是大家最為合適的選擇之一,自建IP池,海量IP地址等你來。

     

    版權聲明:本文為IP海(iphai.cn)原創作品,未經許可,禁止轉載!

    Copyright © 2020-2022 www.meshmotors.com. All Rights Reserved. IP海 版權所有.
    IP海僅提供中國內IP加速服務,無法跨境聯網,用戶使用IP海從事的任何行為均不代本公司的意志和觀點,產生的相關責任用戶自負。
    ICP備案鄂ICP備19030659號-3 公安備案鄂公網安備42100302000141號 計算機軟件著作權證計算機軟件著作權證 ICP/EDI許可證ICP/EDI許可證:鄂B2-20200106

    微信掃一掃咨詢
    八戒八戒在线www日本