דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. נסיון לגשת לאתר באמצעות פרוקסי

נסיון לגשת לאתר באמצעות פרוקסי

מתוזמן נעוץ נעול הועבר תכנות
8 פוסטים 4 כותבים 299 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • yyyY מנותק
    yyyY מנותק
    yyy
    כתב ב נערך לאחרונה על ידי yyy
    #1

    מנסה לגשת דרך פרוקסי ל-API הזה, שפתוח באופן כללי, אבל כנראה סגור לשרתי אירוח מסויימים. יש פרוקסים שלא מחזירים תגובה בכלל, ויש כאלו שמחזירים לי שגיאת 400.
    דוגמא

    ubuntu@vps-123456:~$ curl -i -v --proxy  https://hidemy.name/en/proxy-list:8080  "https://www.nadlan.gov.il/Nadlan.REST/Main/GetNeighborhoodsListByCityAndStartsWith?cityName=%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D&startWithKey=-1">1.txt 2>&1
    

    הנה הפלט

      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    
      0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 172.67.71.85:443...
    * TCP_NODELAY set
    * Connected to hidemy.name (172.67.71.85) port 443 (#0)
    * ALPN, offering http/1.1
    * successfully set certificate verify locations:
    *   CAfile: /etc/ssl/certs/ca-certificates.crt
      CApath: /etc/ssl/certs
    } [5 bytes data]
    * TLSv1.3 (OUT), TLS handshake, Client hello (1):
    } [512 bytes data]
    * TLSv1.3 (IN), TLS handshake, Server hello (2):
    { [122 bytes data]
    * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
    { [25 bytes data]
    * TLSv1.3 (IN), TLS handshake, Certificate (11):
    { [2300 bytes data]
    * TLSv1.3 (IN), TLS handshake, CERT verify (15):
    { [80 bytes data]
    * TLSv1.3 (IN), TLS handshake, Finished (20):
    { [52 bytes data]
    * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
    } [1 bytes data]
    * TLSv1.3 (OUT), TLS handshake, Finished (20):
    } [52 bytes data]
    * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
    * ALPN, server accepted to use http/1.1
    * Proxy certificate:
    *  subject: C=US; ST=California; L=San Francisco; O=Cloudflare, Inc.; CN=hidemy.name
    *  start date: Apr  5 00:00:00 2023 GMT
    *  expire date: Apr  4 23:59:59 2024 GMT
    *  subjectAltName: host "hidemy.name" matched cert's "hidemy.name"
    *  issuer: C=US; O=Cloudflare, Inc.; CN=Cloudflare Inc ECC CA-3
    *  SSL certificate verify ok.
    * allocate connect buffer!
    * Establish HTTP proxy tunnel to www.nadlan.gov.il:443
    } [5 bytes data]
    > CONNECT www.nadlan.gov.il:443 HTTP/1.1
    > Host: www.nadlan.gov.il:443
    > User-Agent: curl/7.68.0
    > Proxy-Connection: Keep-Alive
    > 
    { [5 bytes data]
    * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
    { [238 bytes data]
    * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
    { [238 bytes data]
    < HTTP/1.1 400 Bad Request
    < Server: cloudflare
    < Date: Tue, 04 Jul 2023 18:46:28 GMT
    < Content-Type: text/html
    < Content-Length: 155
    < Connection: close
    < CF-RAY: -
    < 
    * Received HTTP code 400 from proxy after CONNECT
    * CONNECT phase completed!
    * Closing connection 0
    } [5 bytes data]
    curl: (56) Received HTTP code 400 from proxy after CONNECT
    HTTP/1.1 400 Bad Request
    Server: cloudflare
    Date: Tue, 04 Jul 2023 18:46:28 GMT
    Content-Type: text/html
    Content-Length: 155
    Connection: close
    CF-RAY: -
    

    כלומר זה נראה שהחיבור ל-gov.il מצליח אבל מוחזר 400.

    גם אלו מחזירים 400
    https://www.proxysite.com
    https://www.kproxy.com/
    https://www.hidemyass.com/proxy
    https://www.filterbypass.me
    ועוד.

    השאלות הן
    א. האם הפרוקסי רק מעביר לי 400 שקיבל בעצמו מהשרת, או שה-400 נוצר בפרוקסי עצמו משום מה.
    ב. כך או כך למה באמת יש 400? יש משהו שגוי בסינטקס של ה-curl?

    אציין שגם כשאני מנסה על אתר אחר כמו זה (יושב על cloudflare)
    curl -X -i -v --proxy https://www.proxysite.com https://www.jdn.co.il >1.txt 2>&1
    הוא עדיין מחזיר 400.

    shragaS תגובה 1 תגובה אחרונה
    0
    • A מנותק
      A מנותק
      aaron
      כתב ב נערך לאחרונה על ידי
      #2

      הכתובת של הפרוקסי שהגדרת לא נכונה

      aaron.tchumim@gmail.com
      Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

      ווצאפ API - תיעוד שירות API לא רשמי.

      yyyY תגובה 1 תגובה אחרונה
      -1
      • yyyY מנותק
        yyyY מנותק
        yyy
        השיב לaaron ב נערך לאחרונה על ידי
        #3

        @aaron כתב בנסיון לגשת לאתר באמצעות פרוקסי:

        הכתובת של הפרוקסי שהגדרת לא נכונה

        אודה לך אם תכוון אותי יותר.

        אציין שניסיתי גם את השיטה הבאה:

        ubuntu@vps-123456:~$ echo $http_proxy
        https://www.hidemyass.com/proxy
        ubuntu@vps-123456:~$ curl  -v -i "https://www.nadlan.gov.il/Nadlan.REST/Main/GetNeighborhoodsListByCityAndStartsWith?cityName=ירושלים&startWithKey=-1"
        

        והוא מחזיר לי את זה:

        *   Trying 147.237.1.97:443...
        * TCP_NODELAY set
        * connect to 147.237.1.97 port 443 failed: Connection timed out
        * Failed to connect to www.nadlan.gov.il port 443: Connection timed out
        * Closing connection 0
        curl: (28) Failed to connect to www.nadlan.gov.il port 443: Connection timed out
        
        תגובה 1 תגובה אחרונה
        0
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          @yyy הלינקים לכל דבר בנושא סגורים בנטפרי, כך שאין לי מושג אם הכתובת שהזנת נכונה או איך אמורים לכתוב את הcurl.
          בשגיאה האחרונה דוקא זה נראה תקין, אבל זה גם חסום לפרוקסי הזה, כלומר ערבך ערבא צריך.

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          5
          • shragaS מנותק
            shragaS מנותק
            shraga
            כתב ב נערך לאחרונה על ידי shraga
            #5
            פוסט זה נמחק!
            תגובה 1 תגובה אחרונה
            1
            • shragaS מנותק
              shragaS מנותק
              shraga
              השיב לyyy ב נערך לאחרונה על ידי shraga
              #6

              @yyy כתב בנסיון לגשת לאתר באמצעות פרוקסי:

              יש משהו שגוי בסינטקס של ה-curl?

              נשמע שזו הבעיה,
              לא בדקתי עם Curl ואני לא יודע איך הוא מעביר את הפרמטרים, אבל בדוגמא זו למשל

              https://cors-get-proxy.sirjosh.workers.dev/?url=https://www.nadlan.gov.il/Nadlan.REST/Main/GetNeighborhoodsListByCityAndStartsWith?cityName=%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D&startWithKey=-1
              

              מתקבלת שגיאה והסיבה היא שה-URL מכיל פרמטרים בעצמו כשהוא עצמו מועבר כפרמטר.

              הפתרון יכול להיות להשתמש בפונקציה encodeURIComponent של JavaScript כדי להמיר את ה-URL הפנימי למחרוזת מקודדת.

              לאחר שהמרת את ה-URL הפנימי למחרוזת מקודדת, אתה יכול להשתמש בהם כפרמטר ל-URL של הפרוקסי. הפרוקסי מפענח את המחרוזת המקודדת ומבצע את הבקשה ל-URL המקורי שהעברת.

              const targetUrl = 'https://www.nadlan.gov.il/Nadlan.REST/Main/GetNeighborhoodsListByCityAndStartsWith?cityName=%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D&startWithKey=-1';
              const encodedUrl = encodeURIComponent(targetUrl);
              const proxyUrl = `https://cors-get-proxy.sirjosh.workers.dev/?url=${encodedUrl}`;
              
              fetch(proxyUrl)
                .then(response => response.json())
                .then(data => console.log(data))
                .catch(error => console.error('Error:', error));
              
              

              וכך יראה הURL הסופי במקרה זה:

              https://cors-get-proxy.sirjosh.workers.dev/?url=https%3A%2F%2Fwww.nadlan.gov.il%2FNadlan.REST%2FMain%2FGetNeighborhoodsListByCityAndStartsWith%3FcityName%3D%25D7%2599%25D7%25A8%25D7%2595%25D7%25A9%25D7%259C%25D7%2599%25D7%259D%26startWithKey%3D-1
              

              אולי צריך לעשות אנלוגיה דומה לגישה באמצעות cURL. למרות שאם הURL בתוך גרשיים לכאורה זה כן אמור להיות תקין גם כך.
              יתכן שאני מקשקש. אבל רושם כי בכל זאת אולי יועיל. מקסימום אתה יכול להשתמש בשירות הPROXY הזה כפי שהוא.
              הפתרון לבעיה שאני נתקלתי בה באדיבות GPT4.

              yyyY תגובה 1 תגובה אחרונה
              3
              • yyyY מנותק
                yyyY מנותק
                yyy
                השיב לshraga ב נערך לאחרונה על ידי
                #7

                @shraga

                דבר ראשון המרתי את הקוד ל-C#:

                   GNU nano 4.8                                                              Program.cs                                                                        // See https://aka.ms/new-console-template for more information
                 static async Task<string> FetchData()
                        {
                            string targetUrl = "https://www.nadlan.gov.il/Nadlan.REST/Main/GetNeighborhoodsListByCityAndStartsWith?cityName=ירושלים&startWithKey=-1";
                            Console.WriteLine("targetUrl: "+targetUrl);
                            string encodedUrl = Uri.EscapeUriString(targetUrl);
                            Console.WriteLine("encodedUrl: "+encodedUrl);
                            string proxyUrl = $"https://cors-get-proxy.sirjosh.workers.dev/?url={encodedUrl}";
                            Console.WriteLine("proxyUrl: "+proxyUrl);
                            using (HttpClient client = new HttpClient())
                            {
                                try
                                {
                                    HttpResponseMessage response = await client.GetAsync(proxyUrl);
                                    response.EnsureSuccessStatusCode();
                                    string responseBody = await response.Content.ReadAsStringAsync();
                                    return responseBody;
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("Error: " + e.Message);
                                    return null;
                                }
                            }
                        }
                   string result = await FetchData();
                  Console.WriteLine(result);
                
                

                דבר שני הרצתי dotnet run וזה הפלט:

                ubuntu@vps-123456:$  dotnet run
                targetUrl: https://www.nadlan.gov.il/Nadlan.REST/Main/GetNeighborhoodsListByCityAndStartsWith?cityName=ירושלים&startWithKey=-1
                encodedUrl: https://www.nadlan.gov.il/Nadlan.REST/Main/GetNeighborhoodsListByCityAndStartsWith?cityName=%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D&startWithKey=-1
                proxyUrl: https://cors-get-proxy.sirjosh.workers.dev/?url=https://www.nadlan.gov.il/Nadlan.REST/Main/GetNeighborhoodsListByCityAndStartsWith?cityName=%D7%99%D7%A8%D7%95%D7%A9%D7%9C%D7%99%D7%9D&startWithKey=-1
                <!DOCTYPE html>
                ...
                </html>
                

                בתוכן של ה-html אני מקבל עמוד שגיאה כזה
                Screenshot_7.jpg

                השוותי בין הכתובות וראיתי שאצלי הוא לא מקודד את התוים "/" ו-"=" וכנראה מכאן השגיאה. אצטרך לראות איך אני מתקן את זה.

                בכל אופן הרבה תודה.

                dovidD תגובה 1 תגובה אחרונה
                0
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  השיב לyyy ב נערך לאחרונה על ידי
                  #8

                  @yyy המתודה Uri.EscapeUriString לא טובה לך, היא מתאימה טקסט כדי שיהיה כתובת חוקית (למשל המרת רווחים לאחוז 20), אתה צריך להמיר את הכתובת שתתאים לפרמטר, תשתמש בUri.EscapeDataString.

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  תגובה 1 תגובה אחרונה
                  2

                  בא תתחבר לדף היומי!
                  • התחברות

                  • אין לך חשבון עדיין? הרשמה

                  • התחברו או הירשמו כדי לחפש.
                  • פוסט ראשון
                    פוסט אחרון
                  0
                  • דף הבית
                  • קטגוריות
                  • פוסטים אחרונים
                  • משתמשים
                  • חיפוש
                  • חוקי הפורום