2013-04-04 6 views
5

में ट्रेसरूट कार्यक्षमता को लागू करें यह पहली बार मैं किसी भी प्रश्न पूछ रहा हूँ तो मुझे मेरे किसी भी गलती के लिए माफ कर सकता है।एंड्रॉयड

मैं ट्रेसरूट कार्यक्षमता लागू करने के लिए की तरह इस Android Play स्टोर में उपलब्ध एप्लिकेशन चाहते हैं।

Visual TracertPro

Traceroute

मुझे पता है कि जब खिड़कियों में अध्यक्ष एवं प्रबंध निदेशक में टाइप traceroute google.com सभी मध्यवर्ती आईपी इस्तेमाल किया प्रदर्शित करेगा।

मैं अब क्या कोशिश की है।

मैं traceroute कमांड का उपयोग करने का प्रयास करता हूं लेकिन एंड्रॉइड traceroute का समर्थन नहीं करता है केवल रूट डिवाइस इसका समर्थन करता है।

Process process =Runtime.getRuntime().exec("traceroute yahoo.com"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); 
int i; 
char[] buffer = new char[4096]; 
StringBuffer output = new StringBuffer(); 
while ((i = reader.read(buffer)) > 0) 
    output.append(buffer, 0, i); 
reader.close(); 
Log.d("*************", ""+output); 

तो मैं पिंग कमांड के प्रयोग को प्राप्त करने के बारे में सोचा, लेकिन किसी भी success.By पिंग कमांड का उपयोग करते हुए यह केवल google.com के आईपी देता है नहीं के रूप में मैं की जरूरत है और इसके बाद के संस्करण प्रदर्शन ऐप्लिकेशन नहीं मिल सका।

Process process = Runtime.getRuntime().exec("/system/bin/ping -t 1 -c 1 google.com"); 

BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); 
int i; 
char[] buffer = new char[4096]; 
StringBuffer output = new StringBuffer(); 
while ((i = reader.read(buffer)) > 0) 
    output.append(buffer, 0, i); 
reader.close(); 
Log.d("*************", ""+output); 

कृपया मुझे यह प्राप्त करने के लिए मार्गदर्शन करें। कुछ लिंक या कुछ ट्यूटोरियल बहुत उपयोगी होंगे।

अग्रिम धन्यवाद।

+4

अच्छा पहला पोस्ट! यह हमेशा मुझे खुश करता है जब किसी उपयोगकर्ता की पहली पोस्ट में इस तरह की गुणवत्ता होती है। – amccormack

उत्तर

4

busybox उपयोगिता ट्रेसरूट भी शामिल है। आप youtube tutorial का पालन करके अपने फोन को रूट किए बिना अपने डिवाइस पर व्यस्त बॉक्स चला सकते हैं। इसके बाद आपको अपने ऐप के भीतर से ट्रैसरआउट क्वेरी करने के लिए पोस्ट किए गए पहले कोड सेगमेंट का उपयोग करने में सक्षम होना चाहिए। बेशक, आपको यह सुनिश्चित करने की आवश्यकता होगी कि ट्रैसरआउट को कॉल करते समय आप सही पथ का उपयोग करें।

+0

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

+0

@MusicBlues आप व्यस्त एप्लिकेशन को अपने एप्लिकेशन के भीतर एक संपत्ति के रूप में शामिल कर सकते हैं, और उसके बाद इसे उपयोगकर्ताओं की ओर से इंस्टॉल कर सकते हैं। टिप्पणियां इसे समझाने के लिए सबसे अच्छी जगह नहीं हैं, इसलिए आपको एक अतिरिक्त प्रश्न पूछने का प्रयास करना चाहिए। – amccormack

+0

मेरा नया प्रश्न लिंक देखें और यदि आपके लिए संभव हो तो सहायता करें। http://stackoverflow.com/questions/15827492/how-to-add-busybox-and-implement-traceroute-functionality-in-android –

1

ट्रैसरआउट यूडीपी के माध्यम से 3 आईसीएमपी संदेशों को एक असंभव बंदरगाह संख्या में भेजकर काम करता है, प्रत्येक बार एक टाइमर शुरू करता है, और डेटाग्राम में टीटीएल को 1 (अधिकतम 1 हॉप) में सेट करता है। जब वह पहली बार रूटर तक पहुँच जाता है, आंकड़ारेख समाप्त हो रहा है और रूटर एक की अवधि समाप्त हो संदेश (ICMP प्रकार 11 कोड 0) रूटर नाम भी शामिल है कि, आईपी पता, MTU, और कुछ अन्य बिट्स के साथ किसी भी आगे पैकेट भेजने के लिए और प्रतिक्रिया करने के लिए मना कर देगा आंकड़े का। स्रोत टाइमर से राउंड ट्रिप टाइम प्राप्त करेगा। एक बार ट्रैसरआउट को पहली हॉप से ​​डेटा प्राप्त हो जाने पर, यह इन चरणों को दोहराएगा लेकिन टीटीएल को एक से बढ़ाएगा, और अंततः मेजबान को तब तक इन चरणों को दोहराएगा।

आदेश में अपने कोड काम करने के लिए, आप नेटवर्क परत आंकड़ारेख में हेरफेर और शीर्षक में टीटीएल मूल्य निर्धारित करने में सक्षम होने की जरूरत है। उसके बाद यह प्रत्येक राउटर से प्रतिक्रियाओं को पार करने का मामला है जो एक टीटीएल कालबाह्य संदेश देता है।