בירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?
-
@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 אחרים...
זה רק היה דוגמא למשהו חינמי, רק אני לא יודע כמה בדיקות רציפות ניתן לעשות, כפי שכתבתי.
אני צריך משהו רציף וצלא ללא הגבלות.
לנטפרי כנראה יש אינטרס לא לשים מגבלה ולא נאריך כרגע מטעמים ידועים. -
@es0583292679 קהל היעד שלך עובר את ה50 אלף?
רק לא ברור לי מה זה אומר 'סוג נתונים אחד'...כרגע מה שאני רואה:
בניסיון החינמי, זה שהוא מראה את כל הנתונים הדרושים, כך שיש לי 50k ניסיונות גישה (על כל token).
[אגב, זה נראה מהתגובה של org שזה דומה לנטרפי, לכאורה הם עושים בדיוק אותו דבר... -
@LEVI-H כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
@es0583292679 קהל היעד שלך עובר את ה50 אלף?
רק לא ברור לי מה זה אומר 'סוג נתונים אחד'...
עשוי לעבור את זה...
אבל אני לא מתכוון לאתר, אלא לתוכנה מקומית, כך שכנראה הוא סופר זאת לכל אחד מאפס.
השאלה היא, כמה בקשות רציפות אפשר, לדוגמא, אם אני שותל טיימר שבודק כל חצי דקה אם כעת זה סינון X או לא, האם זה יכול להתנגש במגבלות כלשהם. -
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
כך שכנראה הוא סופר זאת לכל אחד מאפס.
מה הכוונה סופר לכל אחד מ0?
הוא סופר לפי טוקנים..
הבקשה נשלחת מטוקן שלך, של המפתח שרצה את הapi... -
@LEVI-H כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
כך שכנראה הוא סופר זאת לכל אחד מאפס.
מה הכוונה סופר לכל אחד מ0?
הוא סופר לפי טוקנים..
הבקשה נשלחת מטוקן שלך, של המפתח שרצה את הapi...לא, זו תוכנה מקומית, כך שהוא לא יכול לזהות כלום.
בכל מחשב יש חיבור מחדש.
אין טוקן בכלל, זה לא API משתנה, זה קוד חינמי מלא, העליתי אותו קודם, בדוק אותו.אשמח אם תוכל לזהות עבורי, הם על הקישור הראשון ששלחת, והן על השני, אם יש בגבלה מקומית של כל משתמש, לדוגמא כל חצי דקה, 2,880 פעמים ביממה, אולי אולי כל זמן אחר, מה המגבלה תכל'ס, שהתוכנה לא תתקע.
הגה:
הקישור השני, לא עובד מחוץ לנטפרי, רק בנטפרי כתוב בלוקד וברגיל כתוב EROR. -
@es0583292679 כתב בבירור | איך לזהות אם הסינון הנוכחי אתרוג/רימון בAPI או משהו אחר?:
הקישור השני, לא עובד מחוץ לנטפרי, רק בנטפרי כתוב בלוקד וברגיל כתוב EROR.
ולכן הבאתי את הקישור שלי, שעושה בדיוק אותו דבר של נטפרי, רק בלי הגבלות..