በCFNetworkCopyProxiesForURL የሚመለሱ PAC URLዎችን ይገምግሙ
የCFNetwork ራስ-ሰር ፕሮክሲ ውቅር ውጤቶችን የPAC አድራሻን እንደ ፕሮክሲ መጨረሻ ነጥብ ሳይሳሳቱ ወደ መዳረሻ-ተኮር መንገዶች ይቀይሩ።
መተግበሪያዎ ድረ-ገጽን እንዴት እንደሚደርስ CFNetworkን ይጠይቃል፤ በ.pac የሚያልቅ URL ያገኛል። ያንን የአስተናጋጅ ስም በሶኬት ግንኙነት ውስጥ ማስገባት የተሳሳተ አቅጣጫ ነው፡ እሱ የውቅር ስክሪፕትን ይገልጻል።
CFNetworkCopyProxiesForURL ለዒላማው URL የተደረደሩ የመዝገበ-ቃላት ድርድር ይመልሳል። የመጨረሻ ነጥብ መስኮችን ከማንበብዎ በፊት kCFProxyTypeKey ይመልከቱ። የkCFProxyTypeAutoConfigurationURL ዓይነት መዝገበ-ቃላት kCFProxyAutoConfigurationURLKey ያቀርባል፤ ይህም ተጨማሪ የግምገማ ደረጃ ይፈልጋል።
- የአሁኑን የስርዓት ፕሮክሲ ቅንብሮች ያግኙ እና ለእውነተኛው መዳረሻ URL መንገዶችን ይጠይቁ።
- ውጤት የPAC URLን ሲያመለክት ያንን ስክሪፕት ለተመሳሳይ መዳረሻ ይገምግሙ።
- የተገኙትን የእጩ ዓይነቶች እና የመጨረሻ ነጥቦች ያንብቡ። የHTTP ፕሮክሲ፣ የSOCKS ፕሮክሲ እና ቀጥተኛ መንገድ የተለያየ የግንኙነት አያያዝ ይፈልጋሉ።
- የተፈቀደውን የውድቀት እና የመመለሻ ባህሪ ሲተገብሩ የእጩዎችን ቅደም ተከተል ይጠብቁ።
CFNetworkExecuteProxyAutoConfigurationURL ስክሪፕቱን አውርዶ በተመሳሳይ ጊዜ ይገምግማል። ወዲያውኑ የሚመለሰው እሴት የloop run ምንጭ ነው። ያንን ምንጭ ያቅዱ፤ ስራው ከተጠናቀቀ በኋላ callback የግምገማውን ውጤት ወይም ስህተት ያቀርባል። ምንጩን ፈጥሮ ባዶ የውጤት ተለዋዋጭን ወዲያውኑ ማንበብ ለምንም አይጠብቅም። ስራው መሰረዝ ካለበት ምንጩን ዋጋ የሌለው ያድርጉ።
ዒላማውን URL ከፍለጋው ጋር አብሮ ይያዙ። የPAC ስክሪፕት ለሁለት አስተናጋጆች የተለያዩ መንገዶችን ሊመርጥ ይችላል፤ ስለዚህ አንድ የተፈታ ፕሮክሲ ለሁሉም ቀጣይ መዳረሻዎች መልስ አድርጎ ማስቀመጥ የስክሪፕቱን ፖሊሲ ይለውጣል። በተመሳሳይ ሁኔታ ቀጥተኛ እጩ ግልጽ መንገድ ነው፣ የጎደለ የፕሮክሲ አስተናጋጅ ስም አይደለም።
እነዚህ APIዎች የብጁ ማጓጓዣ የስርዓት ቅንብሮችን መተርጎም ሲያስፈልግ ጠቃሚ ናቸው። ለዚያ ማጓጓዣ ተከታዩን የፕሮክሲ ፕሮቶኮል አይተገብሩም፣ ፍለጋውም ከKeychain የይለፍ ቃላትን አያመጣም። በmacOS ላይ የፕሮክሲ ምስክርነቱን በKeychain ውስጥ ለየብቻ ያዛምዱ።