IOS सिम्युलेटर से किए गए नेटवर्क कॉल की निगरानी कैसे करें


113

मैं एक ऐप से अपने सर्वर पर कॉल की निगरानी करने की कोशिश कर रहा हूं जैसे फायरबग करता है। मुझे यह देखने का कोई तरीका नहीं मिला कि आईओएस सिम्युलेटर में या एक्सकोड में।

वहाँ एक रास्ता है कि सभी यातायात सूँघने के बिना है? यदि नहीं, तो आप किस उपकरण का सुझाव देंगे?

जवाबों:


84

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

आप इसे केवल विशिष्ट सर्वर से अनुरोध करने के लिए कॉन्फ़िगर कर सकते हैं, न कि पूरे ट्रैफ़िक पर।

यह वाणिज्यिक सॉफ्टवेयर है, लेकिन एक परीक्षण है, और IMHO यह निश्चित रूप से एक महान उपकरण है।


1
वास्तव में उपयोग करने के लिए आसान है और कॉन्फ़िगर और बिल्कुल वही करता है जो मैं चाहता था, धन्यवाद!
मैड एकेट

3
जब आपका सर्वर टीएलएस द्वारा संरक्षित है, जो आसानी से होना चाहिए, तो यह आसानी से काम नहीं करता है।
कार्बोकेशन

मैंने चार्ल्स की कोशिश की, लेकिन मैं आउटगोइंग ट्रैफिक की अच्छी तरह से निगरानी नहीं कर पा रहा था। उदाहरण के लिए, मैंने JSON में अपने POST अनुरोध के प्रारूपण में बदलाव नहीं किया है
यीशु रोड्रिगेज

24

यदि आप केवल HTTP / HTTPS ट्रैफ़िक देखना चाहते हैं, तो अन्य उत्तरों द्वारा सुझाया गया, जैसे एक मध्य-मध्य प्रॉक्सी, एक अच्छा समाधान है। बर्प सूट बहुत अच्छा है। हालांकि यह कॉन्फ़िगर करने के लिए दर्द हो सकता है। मुझे यकीन नहीं है कि आप सिम्युलेटर को इस पर बात करने के लिए कैसे मनाएंगे। आपको अपने स्थानीय मैक पर प्रॉक्सी को अपने प्रॉक्सी सर्वर के उदाहरण के लिए इंटरसेप्ट करने के लिए सेट करना होगा, क्योंकि सिम्युलेटर आपके स्थानीय मैक के वातावरण का उपयोग करेगा।

पैकेट सूँघने का सबसे अच्छा समाधान (हालांकि यह केवल वास्तविक iOS उपकरणों के लिए काम करता है, न कि सिम्युलेटर) जो मैंने पाया है उसका उपयोग करना है rvictlइस ब्लॉग पोस्ट में एक अच्छा राइटअप है। मूल रूप से आप ऐसा करते हैं:

rvictl -s <iphone-uid-from-xcode-organizer>

तब आप उस इंटरफ़ेस को सूँघते हैं जो वोशर्सक (या आपके पसंदीदा उपकरण) के साथ बनाता है, और जब आपके द्वारा इंटरफ़ेस बंद कर दिया जाता है:

rvictl -x <iphone-uid-from-xcode-organizer>

यह अच्छा है क्योंकि यदि आप सिम्युलेटर को सूँघना चाहते हैं, तो आप ट्रैफ़िक के माध्यम से अपने स्थानीय मैक पर भी जा सकते हैं, लेकिन rvictlएक वर्चुअल इंटरफ़ेस बनाता है , जो आपके द्वारा आपके USB में प्लग किए गए iOS डिवाइस से ट्रैफ़िक दिखाता है बंदरगाह।


1
बर्प सुइट के लिए +1, और इसे कॉन्फ़िगर करने के लिए कोई दर्द नहीं: engadget.com/2011/02/21/… यह 10 मिनट से कम समय लेता है
व्लादिमीर

20

एक मुक्त और खुला स्रोत प्रॉक्सी उपकरण जो मैक पर आसानी से चलता है वह है माइटप्रॉक्सी

वेबसाइट में मैक बाइनरी के लिंक और साथ ही जीथब पर स्रोत कोड शामिल हैं।

दस्तावेज़ में HTTPS ट्रैफ़िक देखने के लिए आपके परीक्षण उपकरण में एक प्रमाण पत्र लोड करने के लिए एक बहुत ही उपयोगी परिचय होता है।

चार्ल्स के रूप में GUI-tastic के रूप में काफी नहीं है, लेकिन यह सब कुछ है जो मुझे चाहिए और इसकी स्वतंत्र और बनाए रखा है। यदि आपने पहले कुछ कमांड लाइन टूल्स का उपयोग किया है तो अच्छा सामान, और बहुत सीधा।

अद्यतन: मैं सिर्फ वेबसाइट पर पाया है कि mitmproxy एक homebrew स्थापित के रूप में उपलब्ध है। आसान नहीं हो सकता।


क्या आपके पास आईओएस सिम्युलेटर के लिए मिटम का उपयोग करने का कोई सौभाग्य है? मेरे पास इसका सेटअप है लेकिन सिम्युलेटर के बाहर मेरे कंप्यूटर से ट्रैफ़िक भी पकड़ा जाता है, जो सबसे अच्छा नहीं है। वास्तविक डिवाइस पर इसका उपयोग करना अद्भुत है। वर्षों से कर रहे हैं।
atreat

mitmweb mitmproxy का वेब-आधारित उपयोगकर्ता इंटरफ़ेस है जो इंटरैक्टिव ट्रैफ़िक और HTTP ट्रैफ़िक के संशोधन की अनुमति देता है। Mitmproxy की तरह, यह mitmdump में है कि सभी प्रवाह, स्मृति में रखा जाता है जिसका अर्थ है कि यह ले जा रहा है और छोटे-ish नमूने जोड़ तोड़ के लिए इरादा से भिन्न mitmproxy.readthedocs.io/en/v2.0.2/mitmweb.html
Raunak

15

हाल ही में मुझे एक git रेपो मिला जो इसे आसान बनाता है।

आप इसे आज़मा सकते हैं।

यह एक ऐप का स्क्रीनशॉट है: यहां छवि विवरण दर्ज करें

सादर।


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

10

Xcode CFNetwork डायग्नॉस्टिक लॉगिंग प्रदान करता है। सेब डॉक

इसे सक्षम करने के लिए, CFNETWORK_DIAGNOSTICS=3पर्यावरण चर अनुभाग में जोड़ें :

यहां छवि विवरण दर्ज करें

यह ऐप से उसके हेडर और बॉडी के साथ अनुरोध दिखाएगा। ध्यान दें कि दिखाया OS_ACTIVITY_MODEजाना चाहिए enable। अन्यथा कंसोल पर कोई आउटपुट नहीं दिखाया जाएगा।


4

विरेचक इसे

अपना इंटरफ़ेस चुनें

यहां छवि विवरण दर्ज करें

filterप्रारंभ जोड़ेंcapture

यहां छवि विवरण दर्ज करें


परिक्षण

किसी भी कार्रवाई या बटन पर क्लिक करें जो GET / POST / PUT / DELETE अनुरोध को ट्रिगर करेगा

आप इसे वायरशार्क में सूचीबद्ध देखेंगे

यहां छवि विवरण दर्ज करें

यदि आप एक विशिष्ट पैकेट के बारे में अधिक जानकारी जानना चाहते हैं, तो बस इसे चुनें और > HTTP स्ट्रीम का पालन करें

यहां छवि विवरण दर्ज करें

यह दूसरों की मदद की उम्मीद है !!


3

यदि आपके पास केबल कनेक्शन और मैक है, तो सरल और शक्तिशाली तरीका है:

  1. Wireshark स्थापित करें, सुनिश्चित करें कि यह उपकरणों को कैप्चर कर सकता है (और आपको हर कंप्यूटर को पुनरारंभ करने के बाद ऐसा करने की आवश्यकता है !)।

    सुडो चामोद 644 / देव / बीपीएफ *

  2. अब अपने नेटवर्क को wifi के साथ शेयर करें। सिस्टम वरीयताएँ> साझाकरण> इंटरनेट साझाकरण। जांचें कि आपके पास "ईथरनेट से अपने कनेक्शन साझा करें" और उपयोग कर रहे हैं: वाई-फाई। आप कुछ वाईफ़ाई सुरक्षा को कॉन्फ़िगर करने के लिए भी कर सकते हैं, यह आपके डेटा मॉनिटरिंग को परेशान नहीं करता है।

  3. अपने फोन को अपने नए बनाए गए नेटवर्क से कनेक्ट करें। मुझे यहां अक्सर कई प्रयासों की जरूरत है। यदि फोन कनेक्ट नहीं करना चाहता है, तो मैक की वाईफाई चालू करें, फिर ऊपर चरण 2 को दोहराएं और धैर्य रखें।

  4. Wireshark प्रारंभ करें अपने वायरलेस इंटरफ़ेस को Wireshark के साथ कैप्चर करें, यह संभवतः "en1" है। अपने आवश्यक IP पते और / या पोर्ट फ़िल्टर करें। जब आपको एक पैकेज मिलता है जो दिलचस्प है, तो इसे चुनें, राइट-क्लिक करें (संदर्भ मेनू)> टीसीपी स्ट्रीम का पालन करें और आप अनुरोधों और उत्तरों का अच्छा पाठ प्रतिनिधित्व देखते हैं।

और क्या सबसे अच्छा है: ठीक यही चाल एंड्रॉइड के लिए भी काम करती है!


क्या आप अपने सिम्युलेटर के साथ इसका उपयोग कर सकते हैं? मेरे पास अभी तक अपने फ़ोन पर ऐप नहीं है।
जोशुआ नृत्य

@ जोशुआ नृत्य आप इसे एमुलेटर के साथ उपयोग कर सकते हैं, अगर यह बाहरी नेटवर्क अनुरोध करता है। लोकलहोस्ट के कनेक्शनों को वायरशार्क के साथ नहीं खोजा जा सकता है, क्योंकि वे "तार" (नेटवर्क कार्ड) नहीं पास कर रहे हैं
JaakL

1

Telerik Fiddler एक अच्छा विकल्प है

http://www.telerik.com/blogs/using-fiddler-with-apple-ios-devices


OSX- मशीन पर यह कैसे काम करेगा? दो टैग को ध्यान में रखते हुए xcode और ios-सिमुलेटर हैं।
केविन आर

@KevinR, 1. Telerik में OS X के लिए Fiddler का बीटा संस्करण है। कहीं भी प्रश्न में यह नहीं कहा गया है कि चुनाव OS X telerik.com/blogs/use-fiddler-with-apple-ios/devices
Konstantin

2
@KonstantinSalavatov, मूल पोस्ट का विषय "iOS सिम्युलेटर से किए गए नेटवर्क कॉल की निगरानी कैसे करें" है। आईओएस सिम्युलेटर केवल ओएस एक्स पर चलता है, तो हाँ, पसंद है ओएस एक्स के लिए सीमित
ChillyPenguin

1
+1 मुझे लगता है कि आपको इसे अभी अपटूडेट करना चाहिए, क्योंकि मैक ओएस एक्स के लिए अब समर्थन है! : डी telerik.com/fiddler#SupportedTechnologies और यहाँ telerik.com/download/fiddler/fiddler-osx-beta
डेविड नोरेना

1
  1. वायरशर्क स्थापित करें
  2. Xcode नेटवर्क मॉनिटर से IP पता प्राप्त करें
  3. वाईफाई इंटरफेस सुनें
  4. वायरशर्क में फ़िल्टर ip.addr == 192.168.1.122 सेट करें

0

यदि आप क्रोम इंस्पेक्टर टूल के लिए उपयोग किए जाते हैं तो एक अच्छा समाधान पोनी डिबगर है: https://github.com/square/PonyDebugger

यह सेटअप करने के लिए थोड़ा दर्द है, लेकिन एक बार जब आप इसे अच्छी तरह से काम करते हैं। हालांकि इसका उपयोग करने के लिए क्रोम के बजाय सफारी का उपयोग करना सुनिश्चित करें।


0

मैं netfox का उपयोग करता हूं। इसका उपयोग करना और एकीकृत करना बहुत आसान है। आप इसे सिम्युलेटर और डिवाइस पर उपयोग कर सकते हैं। यह सभी अनुरोधों और प्रतिक्रियाओं को दर्शाता है। यह JSON, XML, HTML, छवि और अन्य प्रकार की प्रतिक्रियाओं का समर्थन करता है। आप आईओएस डिफ़ॉल्ट साझाकरण प्रारूप (जीमेल, व्हाट्सएप, ईमेल, स्लैक, एसएमएस, आदि) द्वारा अनुरोधों, प्रतिक्रियाओं और पूर्ण लॉग को साझा कर सकते हैं।

आप GitHub: https://github.com/kasketis/netfox पर देख सकते हैं

नेटफॉक्स आपके iOS या OSX ऐप द्वारा निष्पादित सभी निष्पादित नेटवर्क अनुरोधों पर एक त्वरित नज़र प्रदान करता है। यह सभी अनुरोधों को पकड़ता है - निश्चित रूप से आपका, तृतीय पक्ष पुस्तकालयों से अनुरोध (जैसे AFNetworking, Alamofire या अन्य), UIWebViews, और बहुत कुछ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.