Ikki qavatli rozetkadan foydalanishda yuzaga kelishi mumkin bo'lgan muammolar
Ilovalar uchun potentsial tuzoq IPv6-xaritali IPv4 manzilini ikki qavatli rozetkada olish va keyin qaytarilgan IP-manzilni boshqa IPv6-rozetkasida ishlatishga urinishdir. Misol uchun, GetSocCName yoki GetPirName funktsiyalari ikki qavatli uyada ishlatilganda IPv4 bilan bog'langan IPv6 manzilini qaytarishi mumkin. Agar qaytarilgan IPv4 IPv6 manzili ikkilamchi bo'lmagan boshqa rozetkada ishlatilsa (faqat rozetkani yaratishda odatiy xatti-harakat bo'lgan IPv6 rozetkasi), IPv6 xaritasi bo'lgan IPv4 bilan faqat shu IPv6 rozetkasidan foydalanish. manzil muvaffaqiyatsiz bo'ladi ... IPv4 bilan bog'langan IPv6 manzil formati faqat ikki qavatli soket uchun ishlatilishi mumkin.
Agar sizning ikki qavatli ilovangiz IPP4 orqali olingan datagramlar uchun wsamsg tuzilmasidagi paket ma'lumotlarini qaytarishni LPFN_WSARECVMSG (vsarecvmsg) talab qilsa , u holda IP_pctinfo soket opsiyasi rozetkada rost qilib o'rnatilishi kerak. Agar rozetka uchun faqat IPv6 _pctinfo parametri to'g'ri bo'lsa, paketli ma'lumotlar IPv6 orqali olingan datagramlar uchun taqdim etiladi, lekin IPv4 orqali olingan datagramlar uchun berilmasligi mumkin.
Agar dastur IP -Pctinfo rozetkasini ikkita stack datagramli rozetkasi uchun o'rnatishga harakat qilsa va tizimda IPv4 o'chirilgan bo'lsa, SetSOCCOPT funktsiyasi bajarilmaydi va allLasterRorr noto'g'ri xato qaytaradi . Xuddi shu xato SetSOCCOPT funktsiyasi tomonidan boshqa xatolar natijasida qaytariladi . Dastur harakat qiladi bilan ikki to'p rozetkaga va chiqish ustida _ iproto IP-qatlam socket variantni bo'lsa tezkor , IPv4 mahalliy mashina ustida o'chirib bo'lsa, dastur aniqlash kerak. IPv4 yoqilgan yoki o'chirilganligini aniqlash uchun ishlatilishi mumkin bo'lgan usullardan biri bu Socket funktsiyasini chaqirishdirbilan AF _ AF harakat qiling va IPv4 shinam yaratish iNet belgilangan. Agar soket funktsiyasi bajarilmasa va WasetLasterRorr server qo'llab -quvvatlashidagi xatoni qaytarsa , bu IPv4 yoqilmaganligini bildiradi. Bunday holda, _ IP-Pctinfo soket parametrini o'rnatishga urinishda SetSOCCOPT funktsiyasidagi xato dastur tomonidan e'tiborga olinmasligi mumkin. Aks holda, _ pctinfo IP soket parametrini o'rnatishga urinish kutilmagan xato deb hisoblanishi kerak.
Datagramlarni susendmsg funktsiyasidan foydalangan holda yuborish va ilovada ma'lum bir mahalliy IP -ni ko'rsatishi kerak bo'lgan ikkita stack rozetkasi uchun, bu muammoni hal qilish usuli IP manziliga bog'liq. O'tgan moslamalarni IPv4 manzilini yoki IPv4, nazorat qilish ma'lumotlar biri eşlenen bir IPv6 manzil manzilga jo'natishda wsamsg tuzilishi bilan ishora lpmsg parametr bo'lishi kerak _ pctinfo tuzilishini yuborish uchun foydalanish kerak, mahalliy IPv4 manzilini o'z ichiga . IPv6 bilan bog'langan IPv4 manzili bo'lmagan IPv6 manzilini manzilga yuborishda, boshqaruv ma'lumotlari ob'ektlaridan biri tuzilishga o'tkaziladi.Wsamsg tomonidan ishora lpmsg parametr bir bo'lishi kerak in6 _ Pctinfo tuzilishi mahalliy IPv6 manbai manzilini o'z ichiga yuborish uchun
Do'stlaringiz bilan baham: |