Հեռախոսի հավելվածը և հեռավոր սերվերը սկսում են տարբեր փաստերից, և ոչ մեկը չի կարող փոխառել մյուսի փաստերը։ Հավելվածը կարող է հարցնել օպերացիոն համակարգին այն ցանցի մասին, որն օգտագործում է, մինչդեռ սերվերը գիտի միայն այն, ինչ գալիս է կապուղով։ Սեփական վերջնակետ գործարկելը վերագրում է երկրորդը և անփոփոխ է թողնում առաջինը։ Դրանցից որը պատասխանում է ձեր հարցին, կախված է հենց հարցից։

Դիտարկման երկու կետ, ապացույցի երկու տեսակ

Տեղական ապացույցը նկարագրում է սարքը։ Այն ընդգրկում է երթևեկությունը կրող ինտերֆեյսը, հարթակի հաղորդած տրանսպորտը և այն, ինչ կանչող հավելվածին թույլատրվում է հարցնել։ Հեռավոր ապացույցը նկարագրում է կապը՝ աղբյուրի հասցե, արձանագրություն, ժամանակ և այն ամենը, ինչ հավելվածը որոշում է ուղարկել։ Դիտարկման ոչ մի կետ մյուսի ամբողջական գերաբազմությունը չէ։

Երկուսը խառնելը ստեղծում է պնդումներ, որոնք ճշգրիտ են հնչում և չեն կարող ստուգվել։ Նշիչը ինչ-որ բան է ապացուցում սարքի ցանցային օբյեկտի մասին, ոչ այն մասին, թե ինչպես է հեռավոր ծառայությունը դասակարգում հարցումը։

Նախքան հայտնաբերման մասին վիճելը գրեք, թե հարցը որ կետին է վերաբերում։ Խնդիրն այն է, թե արդյոք որոշակի հավելվածը կարող է հասկանալ, որ թունելն ակտիվ է, թե՞ այն, թե արդյոք ծառայությունը կարող է ենթադրել, թե որտեղից է եկել հարցումը։ Դրանք առանձին հետազոտություններ են, և մեկի պատասխանը ոչինչ չի ասում մյուսի մասին։

Ինչ կարող է հաղորդել տեղական հարթակի ինտերֆեյսը

Android-ը տրամադրում է որոշակի նշիչ։ NetworkCapabilities օբյեկտը կարող է հաղորդել TRANSPORT_VPN արժեքը, իսկ hasTransport ստուգում է՝ արդյոք այդ տրանսպորտն առկա է օբյեկտում։ Հավելվածը օբյեկտը ստանում է կապակցվածության ծառայությունից և կարդում այն՝ ցանցի վիճակի թույլտվության պայմանով։

Արդյունքը տեղական հարթակային տեղեկություն է, ոչ թե մատակարարի հասցեների միջակայքերում որոնում։ Այն նկարագրում է այն ցանցը, որն օգտագործում է կանչող հավելվածը։

Երկու սահմանափակում կարևոր է։ Բաժանված թունելի կանոնը, որը բացառում է հավելվածը, կարող է նույն հեռախոսում այլ պատասխան տալ, քան տեսնում է գործընկերը, որովհետև հավելվածը կարող է այլ տեղ կապված լինել։ Նշիչը գոյություն ունի նաև այն պատճառով, որ օպերացիոն համակարգը մոդելավորում է VPN ինտերֆեյսներ, ոչ թե որևէ հավելված այն հավաքում է։ Արդյոք հավելվածը կարդում է դաշտը, փոխանցում այն, թե անտեսում՝ դա այդ հավելվածի հատկությունն է։ Նրա մանիֆեստը և փաստաթղթերը այդ հարցի միակ վստահելի աղբյուրներն են։

adb shell dumpsys connectivity | grep -i -m5 vpn

Ինչ կարող է տեսնել հեռավոր ծառայությունը

Սերվերը տեսնում է կապի աղբյուրի հասցեն, տրանսպորտը և ժամանակը, և կարող է հասցեն հարստացնել գրանցամատյանի կամ երթուղավորման տվյալներով։ Այն կարող է նաև ստանալ այն ամենը, ինչ ուղարկում է հավելվածը, ներառյալ գտնվելու վայրը, երբ հավելվածը պահանջում է այն և օգտատերը համաձայնում է։ Այդ ուղիներն առանձին են, և միայն մեկն է նման հասցեի որոնման։

Հոսթինգի մատակարարի անունով գրանցված հասցեն հուշում է թունել, մինչդեռ բնակելի ցանցում գրանցված հասցեն հուշում է տնային կապ։ Երկուսն էլ վիճակագրական ակնարկներ են, ոչ թե փաստեր սարքի մասին։

Բնակելի հասցեն մարդուն չի տեղադրում այդ հասցեում, և հոսթինգի հասցեն չի նշում օպերատորին կամ երկիրը։ Ծառայությունը, որը ենթադրությունը վերաբերվում է որպես վստահություն, երբեմն սխալվելու է՝ չկարողանալով դա հայտնաբերել։ Եթե պահանջը հուսալիություն է, այլ ոչ թե էվրիստիկա, ապա հասցեի տվյալները չեն կարող այն ապահովել, և դիզայնը, որն այդպես է ասում, ավելի ազնիվ է, քան այն, որը թաքցնում է ենթադրությունը։

ԱպացույցԻնչի է պատասխանումԻնչ չի կարող ցույց տալ
Տեղական տրանսպորտի նշիչԱրդյոք այս ցանցային օբյեկտը VPN էՈվ է կառավարում ելքը կամ որտեղ է սարքը
Հեռավոր աղբյուրի հասցեՈր հասցեն է հասել ծառայությանըԱրդյոք սարքը նաև թունել է կրում
Հավելվածի բեռնվածքԻնչ է հավելվածը որոշել ուղարկելԱյն ամենը, ինչ հավելվածը չի ուղարկել

Ինչու ինքնահոսթավորված ելքը փոխում է միայն մի կողմը

Սեփական վերջնակետի գործարկումը փոխում է այն աղբյուրի հասցեն, որը տեսնում է հեռավոր ծառայությունը, ինչը կարող է այն դուրս բերել այն միջակայքերից, որոնք այդ ծառայությունը կապում է առևտրային մատակարարների հետ։ Տեղական ցանցի մոդելում ոչինչ չի փոխվում, որովհետև թունելը մնում է թունել, և օպերացիոն համակարգը դեռ հաղորդում է այն։

Ապացույցի մի կողմը շարժվում է, մյուսը մնում է անշարժ։ Նրանց միջև ընկած բացը այն տեղն է, որտեղ սպասումները կոտրվում են։

Դիտարկիչը երրորդ դեպքն է՝ իր ինտերֆեյսներով և սահմանափակումներով։ Վեբ բովանդակությունը չի կարող կարդալ բնիկ հնարավորությունների օբյեկտ, և բջջային օպերացիոն համակարգի հատկանիշը վեբ էջի համար հասանելի համարելը կատեգորիայի սխալ է։ Եթե հարցը վերաբերում է կայքին, ուսումնասիրեք, թե կայքը իրականում ինչ կարող է ստանալ, փոխարենը՝ հարթակի API-ն բառացիորեն վերաշարադրելու։

Որոշեք ձեր տված հարցով

Եթե հարցն այն է, թե արդյոք որոշակի հավելվածը կարող է դիտարկել թունելի վիճակը, ապա հարթակի ինտերֆեյսը ճիշտ տեղն է նայելու, և պատասխանը այդ հավելվածի կոդում ու թույլտվություններում է։ Եթե հարցն այն է, թե ինչ կարող է ենթադրել ծառայությունը, ապացույցը կապի մետատվյալներն են։ Իրավական կամ պայմանագրային հարցը ոչ մեկը չի լուծում։

Անվանեք հարցը մեկ նախադասությամբ, նախքան ինչ-որ բան հավաքելը։ Այդ նախադասությունը որոշում է, թե որ դիտարկման կետն է կարևոր, և թույլ չի տալիս հետազոտությանը սահել այլ վեճի մեջ։

Յուրաքանչյուր դիտարկում պիտակավորեք ըստ աղբյուրի, երբ հաղորդում եք դրա մասին, որովհետև առանց պիտակի պնդումը հնարավոր չէ վերանայել։ Տեղական նշիչը և հասցեից արված ենթադրությունը երկուսն էլ օգտակար են, և ոչ մեկը վճռական չէ, դրա համար էլ դրանք մեկ վճռի մեջ միավորելը սխալ է։

Երբ ծառայությունը մերժում է լիազորված կապը, օգտվեք նրա աջակցվող վերանայման ուղուց՝ փոխարենը տեղային կարգավորում փոխելու, որպեսզի թաքցնեք ազդանշանը։ Մեկ դիտարկում հեռացնելը երբեք չի ապացուցում, որ մյուսները անհետացել են։

Առնչվող հոդվածներ