2012-01-28 9 views
5

विशेष रूप से, जब किसी HTTP सर्वर को आईफोन से अनुरोध प्राप्त होता है, तो क्या कोई तरीका यह निर्धारित करने के लिए कि फोन के किस प्रकार के इंटरनेट कनेक्शन हैं?क्या अन्य अनुरोधों से 3 जी के माध्यम से किए गए HTTP अनुरोधों को अलग करना संभव है

यदि निश्चितता के साथ यह निर्धारित करने का कोई तरीका नहीं है, तो क्या कोई अच्छा हेरिस्टिक है?

+0

यह वास्तव में एक अच्छा सवाल है। मुझे संदेह है कि HTTP कुछ भी प्रदान करता है, लेकिन आप परिवहन परत को देखने में सक्षम हो सकते हैं। –

+0

क्या मैं पूछ सकता हूं कि आप वास्तव में क्या जवाब देना चाहते हैं? उपयोगकर्ता के लिए संभावित डेटा शुल्कों को कम करने की कोशिश करने के लिए थ्रॉटलिंग डेटा के अलावा, मैं किसी भी कारण से नहीं सोच सकता कि आप यह विशेष जानकारी क्यों जानना चाहेंगे। शायद आप वास्तव में विलंबता, कनेक्शन गुणवत्ता, आदि के बारे में जानना चाहते हैं? –

+0

मुझे अभी तत्काल आवश्यकता नहीं है, लेकिन आप पहले से ही कारण बता चुके हैं: किसी उपयोगकर्ता के लिए संभावित डेटा शुल्क को कम करने का प्रयास करें। एक ऐप को कुछ बग्स के साथ भेज दिया गया, और सर्वर पर बग्स में से एक के लिए जिम्मेदार ठहराया जा सकता है, लेकिन यह क्लाइंट को * बहुत * अधिक डेटा का उपयोग करने के लिए मजबूर करेगा। –

उत्तर

1

यदि आप आईओएस एप्लिकेशन को नियंत्रित करते हैं, तो आप कस्टम हेडर सेट करने में सक्षम होना चाहिए, X-iOS-ConnectionType कहें। यदि आपको मोबाइल सफारी से अनुरोध प्राप्त हो रहा है, तो मुझे संदेह होगा कि आपको कुछ भी मिल जाएगा, हालांकि आप स्रोत आईपी पते को पिंग करने और स्थानांतरण दर की जांच करने का प्रयास कर सकते हैं।

मुझे इसे प्रगतिशील वृद्धि और अनुकूली डिज़ाइन के साथ जोड़ना चाहिए, तो आप शायद 3 जी/वाईफ़ाई के बजाय थ्रूपुट का पता लगाकर बेहतर सेवा कर सकते हैं। जबकि आपको वाईफाई पर बेहतर थ्रूपुट मिलने की संभावना है, मुझे कई उदाहरण मिले हैं जहां 3 जी बहुत तेज़ था।

(ध्यान दें कि मैं मोबाइल यातायात में कभी नहीं देखा है, और स्रोत आईपी ग्राहक अंतरण दर के लिए एक अच्छा संकेत नहीं हो सकता।)

+0

यह एक दिलचस्प विचार है, लेकिन मैं एक ऐसे तंत्र की तलाश में हूं जिसके लिए आईओएस ऐप को संशोधित करने की आवश्यकता नहीं होगी। –

1

शायद तुम Reachability वर्ग इंटरनेट कनेक्शन निर्धारित करने के लिए इस्तेमाल कर सकते हैं और फिर शामिल कि आपके HTTP अनुरोध में, उदाहरण के लिए रयान रिले के सुझाव के रूप में एक पैरामीटर या कस्टम HTTP शीर्षलेख के रूप में।

+0

यह वास्तव में जाने का तरीका है। पहुंचने योग्य वर्ग आपको बताता है कि क्या आप वाईफाई का उपयोग कर रहे हैं या नहीं (फिर, इसकी 3 जी) – codingcthulhu

3

उस शव को खोदने के लिए खेद है, लेकिन वास्तव में मैंने अभी भी एक ही समस्या के बारे में सोचा था। बिंदु यह है: सीधे का पता लगाने का कोई तरीका नहीं है।

अल्टो, मैं एक दृष्टिकोण के साथ आया, जिसे दुख की जरूरत है: आपको अनुरोध के लिए आईपी के लिए होस्टनाम प्राप्त करने की आवश्यकता है।

उदाहरण के लिए, जब मैं 3 जी नेटवर्क पर मेरे फोन के साथ पर मेरे वेब सर्वर के लिए एक अनुरोध बनाने के लिए और अनुरोध होस्ट नाम के लिए अनुरोध आईपी हल, मैं इस मिल:

ip-xxx-xxx-xxx-xxx.web.vodafone.de 

तो तुम इकट्ठा करने के लिए की आवश्यकता होगी (या इंटरनेट पर खोजें) मोबाइल वेब प्रदाता होस्टनाम की एक सूची। इस दृष्टिकोण के साथ, आप बिल्कुल नहीं बता सकते कि उपयोगकर्ता किस प्रकार का कनेक्शन उपयोग कर रहा है, लेकिन कम से कम, आप वाईफाई और मोबाइल नेटवर्क के बीच अंतर कर सकते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे