בירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?
-
@זונדל כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
בנטפרי יש בקוד שחוזר קוד של אתר חסום משהו בסגנון 404
418
-
@LEVI-H כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
האתר הזה חסום בכל הסינונים הקיימים: 777.com
תנסה לבצע fetch ולראות תגובה.מה הוא מכיל?
אם אתה רוצה שלח לי לפרטי. -
@es0583292679 כתבתי בפרטי
-
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
תרוג ועוד, אני מתעניין אם יש מישהו שיודע איך ניתן לזהות באיזה
@es0583292679 בלי קשר, אני בטוח שיש איזה אופצייה שונה לזהות.
ולא רק על ידי ניסיון לגשת לאתר, ולקבל תגובה.
קח לדוגמה את כל הspeed test, שמראים לך גם מי הספק שלך... -
@LEVI-H כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
תרוג ועוד, אני מתעניין אם יש מישהו שיודע איך ניתן לזהות באיזה
@es0583292679 בלי קשר, אני בטוח שיש איזה אופצייה שונה לזהות.
ולא רק על ידי ניסיון לגשת לאתר, ולקבל תגובה.
קח לדוגמה את כל הspeed test, שמראים לך גם מי הספק שלך...אתה צודק.
אני נזכר שיש לי קוד שמזהה מי הספק, אבל עכשיו אני צריך לודא שזה באמת שונה.
לדוגמא, ל019 יש כמה סינונים, אז מה יהיה כתוב?אגב, גם לנטפרי יש זיהוי ספק בתמיכה, דברים פשוטים.
-
@Tיו_ כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
אולי אני מגיב שלא מין העניין אבל אשרייך הרב סילבר שליט"א שדואג תדיר לחסימת החומות בדרך היעילה ביותר
כן, אנו מכירים כבר הרבה שנים את ר' אליעזר שליט"א, והיראת שמים שלו זה משהו מיוחד במינו, שלא לדבר גם על כך שהוא גם ת"ח מופלג...
@es0583292679 מתנצל על המקצת שבחו... -
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
אגב, גם לנטפרי יש זיהוי ספק בתמיכה, דברים פשוטים.
אפשר פשוט לשלוף את הקוד מנטפרי..
אם זה מה שהוא כותב:
זה לכאורה משהו פה, לפי הid selector
[current-isp]var problems = {}; var problem; var countryCode; updateStatusDisplay('check') Promise.all([ checkNetwork(), checkNetFreeHttps(), checkIsNetfreeAndUserLink(), checkTime(), testNetworkSpeed(), checkIPv6(), checkCountry() ]).finally(parseResults) function updateStatusDisplay(status) { $('.show-if').hide(); $('.show-if[show=' + status + ']').show(); } function checkNetwork() { var rand = randomString(10); var networkIsWork = false; var checkA = new Promise(function (resolve) { $.ajax({ url: "//httpbin.org/get?v=" + rand, timeout: 10000, success: function (res) { if (res.args && res.args.v == rand) networkIsWork = true; resolve(); }, error: function () { resolve(); } }) }) var checkB = new Promise(function (resolve) { $.ajax({ url: "//mockbin.org/request/netfree?v=" + rand, timeout: 10000, success: function (res) { if (res.queryString && res.queryString.v == rand) networkIsWork = true; resolve(); }, error: function () { resolve(); } }) }) return Promise.all([checkA, checkB]).then(function () { if (!networkIsWork) problems.network = true; }) } function checkIPv6() { return new Promise(function (resolve) { $.ajax({ url: "https://api6.ipify.org?format=json&r=" + randomString(10), timeout: 10000, success: function () { problems.ipv6Work = true; resolve(); }, error: function () { resolve(); } }) }); } function checkNetFreeHttps() { return new Promise(function (resolve) { $.ajax({ url: "https://" + randomString(10) + ".internal.netfree.link/ping", timeout: 10000, success: resolve, error: function (xhr, status, error) { if (status == "error") problems.https = true; resolve(); } }) }) } function checkIsNetfreeAndUserLink() { return new Promise(function (resolve) { $.ajax({ url: '//user-info.internal.netfree.link/user/' + randomString(10), success: function (res) { var userKey = res && res.userKey; problems.notNetfree = !(res && res.userKey); problems.notUserLink = !(res && res.userId); if (problems.notUserLink && userKey && /@wifree3$/.test(userKey)) { problems.wifreeBlock = true; } resolve(); }, error: function (err) { if (err && err.status > 0) problems.notNetfree = true; resolve(); } }) }) } function checkTime() { return new Promise(function (resolve) { $.ajax({ url: '/api/current-unixtime?' + randomString(10), timeout: 10000, success: function (res) { var difference = Math.abs((Date.now() - res.time)); var maxDifference = (20 * 60 * 1000); problems.wrongTime = (difference > maxDifference); resolve(); }, error: function () { problems.wrongTime = true; resolve(); } }) }) } function testNetworkSpeed() { return new Promise(function (resolve) { $.ajax({ url: "/inspinia/css/bootstrap-bi/bootstrap-rtl.min.css?" + Math.random(), timeout: 5000, success: resolve, error: function () { problems.speed = true; resolve(); } }) }) } function checkCountry() { return new Promise(function (resolve) { $.ajax({ url: '/api/geo/info', success: function (res) { countryCode = res.countryCode; resolve(); }, error: resolve }) }) } function parseResults() { if (problems.network && problems.notNetfree) { problems.wifreeBlock = true; } if (problems.speed) { problem = 'too-slow'; } else if (problems.wifreeBlock) { problem = (countryCode === 'IL') ? 'wifree-block-nonfree-internet-il' : 'wifree-block-nonfree-internet-no-il'; } else if (problems.network) { // problem = 'wifree-error'; // make problem } else if (problems.notNetfree) { problem = 'oh-is-not-netfree'; getIsp(); } else if (problems.notUserLink) { problem = 'user-no-link'; } else if (problems.wrongTime) { problem = 'wrong-time'; } else if (problems.https) { problem = 'not-have-netfree-certificate'; } else if (problems.ipv6Work) { problem = 'ipv6-work'; } if (problem) { updateStatusDisplay('problem'); $('.problem #' + problem).show(); } else { updateStatusDisplay('success'); } } function getIsp() { $.ajax({ url: "/api/geo/get-isp", success: function (result) { if (result && result.isp) { $('#current-isp').text("הספק הנוכחי הוא כפי הנראה: " + result.isp); } } }) } function randomString(count) { var randomStringChars = "abcdefghijklmnopqrstuvwxyz0123456789"; var out = ''; while (count-- > 0) { out += randomStringChars[Math.floor(randomStringChars.length * Math.random())]; } return out; }
בדיקה קלה מראה שהם פיתחו משהו כזה בצד השרת:
https://netfree.link/api/geo/get-ispכמו כן מה שמעלה תמיהה, איך הם מזהים את זה בדיוק, זה הבקשה המלאה שנשלחת לשרת:
:authority: netfree.link :method: GET :path: /api/geo/get-isp :scheme: https accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 accept-encoding: gzip, deflate, br, zstd accept-language: he cache-control: no-cache cookie: _gid=GA1.2.187853425143952; locale=he; forum.token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTA1MjkwLCJ1c2VybmFtZSI6IkxFVkkiLCJlbWFpbCI6bnVsbCwiZ3Jv0sImlhdCI6MTcyNTMwMDY5OH0.NPZltaHXKz2ADaeO91oEmE9M; _ga_BZLE4CJQXK=GS1.2.1725306239.86239.0.0.0; netfree.session=s%3A%3A1099c4d924e96979897d3ac18413361a534ce4922704669%3A.yNuDOGorHFzm8Pt95Gp74zZTVD%2FPV1itUCf4Z83La1s; _ga=GA1.2.123281.1712877582; _ga_VYSDGL73B7=GS1.1.17287.22.1.1725385319.0.0.0 pragma: no-cache priority: u=0, i referer: https://mitmachim.top/ sec-ch-ua: "Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99" sec-ch-ua-mobile: ?0 sec-ch-ua-platform: "Windows" sec-fetch-dest: document sec-fetch-mode: navigate sec-fetch-site: cross-site sec-fetch-user: ?1 upgrade-insecure-requests: 1 user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
לדעתי, מה שהכי חושף פה מידע, זה הקוקיז, אם תשימו לב - איזה קוקיז נשלח ביחד עם הבקשה...
מבדיקה שעכשיו ערכתי, זה נראה שלא הקוקיז זה שחושף את זה, שלחתי עכשיו את הבקשה שוב - בלי קוקיז, ועדיין הוא זיהה...
ניתן לבנות שרת כזה, כך:
https://chatgpt.com/share/423c2a43-9b6e-46c2-92e8-cf3a2a371629 -
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
לדוגמא, ל019 יש כמה סינונים, אז מה יהיה כתוב?
את הסינון הקיים (הסינון הופך להיות הספק)...
-
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
לצורך בניית תוכנה כמו ווייפרי לאתרוג ועוד, אני מתעניין אם יש מישהו שיודע איך ניתן לזהות באיזה דרך כלשהי את הרשתות של אתרוג רימון או כל רשת קיימת.
יישר כח מאד ותזכו למצוות!
לנטפרי יש API אבל שיטה אחת שיעבוד בשביל כולם זה לזהות לפי תעודת אבטחה, בלינוקס יוצא דבר כזה :
echo | openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -subject -issuer
וזה מחזיר :
subject=CN=*.google.com, OU=NetFree Filter issuer=C=IL, ST=israel, L=Jerusalem, O=NetFree, OU=netfree.link, CN=NetFree Sign, Bezeq
בוינדוס אני לא יודע, צריל לבדוק אם קיים openssl על וינדוס
-
@LEVI-H יפה מאד!
https://netfree.link/api/geo/get-isp
זה אכן עובד...
השאלות הם:- א. האם זה מותר לשבת להם על השרת?!?..
- ב. אם כן, האם הם מסכימים?!...
- ג. אם הוא לא מסכים, וזה מותר כמובן, האם הוא יעלה על זה...
- ד. אם הוא יעלה על זה, מה הוא יכול לעשות?... אם הוא ישנה את הדומיין יהיה עדכון אוטומטי בתוכנה שתבדוק לפי הדף של נטפרי או לפי עדכון ידני של המפתח, או לפי קריאה אוטומטית משרת המפתח המתעדכן ידנית מנטפרי, או אפילו אוטומטית, בקיצור זה ענין או אבוד או של מרדף ידני, אבל עדין אבוד, לנטפרי, הנפק"מ האם צריך לעשות פעולה כדי לסדר את שינוי נטפרי או שזה נעשה לבד.
- ה. הכי חשוב! מה שמות הספקים של כל סינון? אצלי לדוגמא זה נקרא עמית נט סלקום של יוסי תקשורת, ואני יודע שזה נטפרי, אבל אולי יש גם לא נטפרי עם השם הזה, וכן זה רק אחד, ספציפית לנטפרי יש כמה דרכים, אני צריך לכל הסינונים.
-
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
א. האם זה מותר לשבת להם על השרת?!?..
ב. אם כן, האם הם מסכימים?!...
ג. אם הוא לא מסכים, וזה מותר כמובן, האם הוא יעלה על זה...
ד. אם הוא יעלה על זה, מה הוא יכול לעשות?... אם הוא ישנה את הדומיין יהיה עדכון אוטומטי בתוכנה שתבדוק לפי הדף של נטפרי או לפי עדכון ידני של המפתח, או לפי קריאה אוטומטית משרת המפתח המתעדכן ידנית מנטפרי, או אפילו אוטומטית, בקיצור זה ענין או אבוד או של מרדף ידני, אבל עדין אבוד, לנטפרי, הנפק"מ האם צריך לעשות פעולה כדי לסדר את שינוי נטפרי או שזה נעשה לבד.שמתי שם קישור של gpt פחות או יותר איך זה עובד, ואיך לבנות דבר כזה פשוט בnode.js.
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
ה. הכי חשוב! מה שמות הספקים של כל סינון? אצלי לדוגמא זה נקרא עמית נט סלקום של יוסי תקשורת, ואני יודע שזה נטפרי, אבל אולי יש גם לא נטפרי עם השם הזה, וכן זה רק אחד, ספציפית לנטפרי יש כמה דרכים, אני צריך לכל הסינונים.
לא יודע בדיוק, אבל הבנתי שזה לפי מאגרי מידע הקבועים מראש של כתובות ip.
-
@LEVI-H כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
א. האם זה מותר לשבת להם על השרת?!?..
ב. אם כן, האם הם מסכימים?!...
ג. אם הוא לא מסכים, וזה מותר כמובן, האם הוא יעלה על זה...
ד. אם הוא יעלה על זה, מה הוא יכול לעשות?... אם הוא ישנה את הדומיין יהיה עדכון אוטומטי בתוכנה שתבדוק לפי הדף של נטפרי או לפי עדכון ידני של המפתח, או לפי קריאה אוטומטית משרת המפתח המתעדכן ידנית מנטפרי, או אפילו אוטומטית, בקיצור זה ענין או אבוד או של מרדף ידני, אבל עדין אבוד, לנטפרי, הנפק"מ האם צריך לעשות פעולה כדי לסדר את שינוי נטפרי או שזה נעשה לבד.שמתי שם קישור של gpt פחות או יותר איך זה עובד, ואיך לבנות דבר כזה פשוט בnode.js.
לא צריך עוד קוד ברגע שיש את זה.
בכל מקום ניתן 'להשיג את מקור הדף' או את 'טקסט הדף' וזהו.
ברגע שיש לי את הטקסט הקוד יבצע כבר את המיון לפי שמות וכו'. -
@es0583292679 אני מנסה להבין מה זה בדיוק, זה נראה קשור לתעודת הssl שמחזיר האתר.
אם כן, לא נצטרך דווקא cmd וכד', סתם לדוגמה, זה אמור להיות מוצג כאן:
לפי מה שאני רואה בתגובה שהוא החזיר אצלך - המשתנה ou הוא זה שאמור להכיל את הספק, אבדוק.. -
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
לא צריך עוד קוד ברגע שיש את זה.
במקרה שתרצה שלא להישען על נטפרי..
-
@LEVI-H כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
לא צריך עוד קוד ברגע שיש את זה.
במקרה שתרצה שלא להישען על נטפרי..
יש לי עוד קוד שמפק את זה, לא נטפרי, רק אני לא יודע כמה בדיקות רציפות ניתן לבצע.
משהו כזה:public class IpInfo { public string ip { get; set; } public string city { get; set; } public string region { get; set; } public string country { get; set; } public string loc { get; set; } public string org { get; set; } public string timezone { get; set; } } IpInfo ipInfo = new IpInfo(); string info = new WebClient().DownloadString("http://ipinfo.io"); JavaScriptSerializer jsonObject = new JavaScriptSerializer(); ipInfo = jsonObject.Deserialize<IpInfo>(info); RegionInfo region = new RegionInfo(ipInfo.country); מידע += מעבר_שורה +"IP: " + ipInfo.ip; מידע += מעבר_שורה +"עיר: " + ipInfo.city; מידע += מעבר_שורה + "אזור: " + ipInfo.region; מידע += מעבר_שורה + "מדינה: " + region.EnglishName; מידע += מעבר_שורה + "קישור למפה: " + Uri.EscapeUriString(CreateGoogleMapsLink(ipInfo.loc)); string CreateIpInfoLink(string ipAddress) { return $"http://ipinfo.io/{ipAddress}"; } מידע += מעבר_שורה + "לפרטים נוספים: " + CreateIpInfoLink(ipInfo.ip);
-
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
@LEVI-H כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
לא צריך עוד קוד ברגע שיש את זה.
במקרה שתרצה שלא להישען על נטפרי..
יש לי עוד קוד שמפק את זה, לא נטפרי, רק אני לא יודע כמה בדיקות רציפות ניתן לבצע.
משהו כזה:public class IpInfo { public string ip { get; set; } public string city { get; set; } public string region { get; set; } public string country { get; set; } public string loc { get; set; } public string org { get; set; } public string timezone { get; set; } } IpInfo ipInfo = new IpInfo(); string info = new WebClient().DownloadString("http://ipinfo.io"); JavaScriptSerializer jsonObject = new JavaScriptSerializer(); ipInfo = jsonObject.Deserialize<IpInfo>(info); RegionInfo region = new RegionInfo(ipInfo.country); מידע += מעבר_שורה +"IP: " + ipInfo.ip; מידע += מעבר_שורה +"עיר: " + ipInfo.city; מידע += מעבר_שורה + "אזור: " + ipInfo.region; מידע += מעבר_שורה + "מדינה: " + region.EnglishName; מידע += מעבר_שורה + "קישור למפה: " + Uri.EscapeUriString(CreateGoogleMapsLink(ipInfo.loc)); string CreateIpInfoLink(string ipAddress) { return $"http://ipinfo.io/{ipAddress}"; } מידע += מעבר_שורה + "לפרטים נוספים: " + CreateIpInfoLink(ipInfo.ip);
זה על אותו עניין, הוא ניגש לdatabase של ipinfo שמבצע בדיקות בdatabase אחרים...
-
@LEVI-H כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
@LEVI-H כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
לא צריך עוד קוד ברגע שיש את זה.
במקרה שתרצה שלא להישען על נטפרי..
יש לי עוד קוד שמפק את זה, לא נטפרי, רק אני לא יודע כמה בדיקות רציפות ניתן לבצע.
משהו כזה:public class IpInfo { public string ip { get; set; } public string city { get; set; } public string region { get; set; } public string country { get; set; } public string loc { get; set; } public string org { get; set; } public string timezone { get; set; } } IpInfo ipInfo = new IpInfo(); string info = new WebClient().DownloadString("http://ipinfo.io"); JavaScriptSerializer jsonObject = new JavaScriptSerializer(); ipInfo = jsonObject.Deserialize<IpInfo>(info); RegionInfo region = new RegionInfo(ipInfo.country); מידע += מעבר_שורה +"IP: " + ipInfo.ip; מידע += מעבר_שורה +"עיר: " + ipInfo.city; מידע += מעבר_שורה + "אזור: " + ipInfo.region; מידע += מעבר_שורה + "מדינה: " + region.EnglishName; מידע += מעבר_שורה + "קישור למפה: " + Uri.EscapeUriString(CreateGoogleMapsLink(ipInfo.loc)); string CreateIpInfoLink(string ipAddress) { return $"http://ipinfo.io/{ipAddress}"; } מידע += מעבר_שורה + "לפרטים נוספים: " + CreateIpInfoLink(ipInfo.ip);
זה על אותו עניין, הוא ניגש לdatabase של ipinfo שמבצע בדיקות בdatabase אחרים...
זה רק היה דוגמא למשהו חינמי, רק אני לא יודע כמה בדיקות רציפות ניתן לעשות, כפי שכתבתי.
אני צריך משהו רציף וצלא ללא הגבלות.
לנטפרי כנראה יש אינטרס לא לשים מגבלה ולא נאריך כרגע מטעמים ידועים.