2012-10-30 65 views
6

मैं यहां नया हूं ... कुछ मदद के लिए खुदाई कर रहा हूं लेकिन मुझे लगता है कि मैं शामिल होगा और कुछ मार्गदर्शन मांगूंगा।आईपी एड्रेस की नकल कैसे करें - डिवाइस सिम्युलेटर आवश्यक

मैं एक ऐप बनाना चाहता हूं जो कई "नकली" डिवाइस बना सकता है। उन्हें एक आईपी पता चाहिए और मैं पिंग का जवाब देने में सक्षम हूं। डब्लूएमआई का जवाब देने में सक्षम होना भी अच्छा होगा। एक सिम्युलेटर की तरह किंडा। मैं 50,000 डिवाइस बनाना चाहता हूं लेकिन 1 से शुरू होने से भी मदद मिलेगी।

ऐसे ऐप के लिए क्या आवश्यक है? टीसीपी ग्राहक/श्रोता? मैंने पहले ऐसा कुछ नहीं किया है, इसलिए कृपया नम्र रहें :)

+0

मैं उत्सुक हूं कि कितने नेटवर्क कार्ड विंडोज़ समर्थन कर सकते हैं।कृपया हमें बताएं कि नेटवर्क नेटवर्क एडाप्टर जोड़ने के बाद आपकी मशीन पर सीपीयू और रैम उपयोग के साथ क्या हुआ। – Kamil

+0

आपके पास एक ही नेटवर्क कार्ड पर एकाधिक आईपी पते हो सकते हैं। क्या आप यही पूछ रहे हैं कि कैसे करना है? – Gabe

उत्तर

3

आप वर्चुअल नेटवर्क एडाप्टर के (ड्राइवर को विंडोज ओएस के साथ शामिल किया गया है) स्थापित कर सकते हैं, लेकिन मैंने इसका कभी भी उपयोग नहीं किया है। वर्चुअल नेटवर्क एडाप्टर के लिए ड्राइवर यहाँ है: %WINDIR%\Inf\Netloop.inf

आप स्क्रिप्ट के द्वारा उपकरणों को जोड़ने के लिए DevCon बुलाया कमांड लाइन उपकरण, इस तरह उपयोग कर सकते हैं:

devcon -r install %WINDIR% \Inf\Netloop.inf *MSLOOP 

स्थापना Unfortunatelly (मेरी कोर डुओ 2.0 लैपटॉप पर) कुछ ही सेकंड लगते ।

यदि आपको बहुत सारे नेटवर्क कार्ड कॉन्फ़िगर करने की आवश्यकता है तो आप कमांड लाइन netsh का उपयोग कर सकते हैं।

उदाहरण:

netsh in ip set address "Local Area Connection" static 10.0.0.1 255.0.0.0 10.0.0.1 1 
netsh in ip add address "Local Area Connection" 10.0.0.2 255.0.0.0 
netsh in ip set address "Local Area Connection 2" 10.0.0.3 255.0.0.0 
netsh in ip set address "Local Area Connection 3" 10.0.0.4 255.0.0.0 
netsh in ip set dns "Local Area Connection" static 10.0.0.250 
netsh in ip set wins "Local Area Connection" static 10.0.0.250 

आपने किसी फ़ाइल का भी हट सकता/निर्यात मौजूदा नेटवर्क विन्यास (कैसे वर्तमान config लग रहा है देखने के लिए):

netsh interface dump > file.txt 

More netsh examples

संपादित करें: हटा नहीं जानकारियां इस मामले में उपयोगी है।

+0

मैं जिस सॉफ्टवेयर को "चाल" करने की कोशिश कर रहा हूं, वह केवल 1 डिवाइस को एकाधिक आईपी पते के साथ देखेगा। वास्तव में सुनिश्चित नहीं है कि 1 डिवाइस से एकाधिक आईपी पते की नकल कैसे करें। – user1786176

+0

मैंने जानकारी को जोड़ा कि प्रभावी ढंग से एकाधिक पते कैसे जोड़ें, लेकिन 50000 एक डरावनी संख्या है और आपको समस्या हो सकती है। – Kamil

+0

अपडेट के लिए धन्यवाद लेकिन यह अभी भी 1 डिवाइस के रूप में देखा जाएगा (जैसा कि परीक्षण के तहत सॉफ़्टवेयर से देखा गया है)। – user1786176

1

यदि मैं आपको सही ढंग से समझ रहा हूं, दुर्भाग्य से यह आसान नहीं होगा क्योंकि आपको अपनी इच्छित नौकरी करने के लिए नेटवर्क एडेप्टर वर्चुअलाइज करने की आवश्यकता है। एक आईपी पता एक शून्य (भौतिक या तार्किक) से बंधे होते हैं, ऐसा कुछ नहीं जो उच्च परत कोड में निर्दिष्ट किया जा सकता है। वीएमवेयर वर्कस्टेशन में विजुअल स्टूडियो के लिए एक प्लगइन शामिल है, इसलिए शायद आप इसे कई वर्चुअल एनआईसी उत्पन्न करने के लिए उपयोग कर सकते हैं और उन्हें आईपी प्रोग्रामेटिक रूप से असाइन कर सकते हैं, लेकिन अन्यथा आपको वर्चुअल नेटवर्क कार्ड ड्राइवर (शायद एक गैर-नेटवर्क्स भाषा में) लिखने की आवश्यकता है , यदि आप मौजूदा वर्चुअलाइजेशन तकनीक का उपयोग नहीं करते हैं। आप एक आईसी पते पर कई आईपी पते ढेर कर सकते हैं, लेकिन इसके साथ संचार करने वाले कंप्यूटर को पता चलेगा कि वे सभी एक ही नेटवर्क इकाई हैं। यदि यह आपके साथ ठीक है, तो बस अपने पास मौजूद सभी आईपी जोड़ें जो आप चाहते हैं।

आपकी क्वेरी के दूसरे भाग पर, क्योंकि आप चाहते हैं कि आईपी प्राप्त करने और डेटा भेजने में सक्षम हों, उनके पते को रूट करने योग्य होना होगा, इसलिए आप कोई पुराना आईपी पता नहीं चुन सकते हैं। यदि आप एनएटी दीवार के पीछे ठीक हैं, तो आप उन्हें संबोधित करने के लिए 10.x.y.z का उपयोग कर सकते हैं, लेकिन नेट के बाहर वे सभी बाहरी दुनिया में एक ही सार्वजनिक आईपी का उपयोग कर रहे हैं। 50k सार्वजनिक रूप से रूटेबल आईपी पते का पर्दाफाश करने के लिए, आपको पहले पंजीकरण करना होगा और उन्हें खरीदना होगा।

आखिरकार आप आईसीपी/पिंग करने के लिए टीसीपी क्लाइंट का उपयोग नहीं कर सकते हैं, क्योंकि वे आईसीएमपी प्रोटोकॉल का उपयोग करते हैं, लेकिन इसके बजाय System.Net और System.Net.NetworkInformation Namepace का उपयोग करते हैं। यहां कुछ वीबी कोड है जो आपको इसका स्वाद देने के लिए एक पिंग भेजने के लिए है:

Imports System 
Imports System.Net 
Imports System.Net.NetworkInformation 


Public Class Pinger 

    <System.Diagnostics.DebuggerNonUserCode()> _ 
     Public Sub New() 
     MyBase.New() 

     'This call is required by the Component Designer. 
     InitializeComponent() 

    End Sub 


    Public Shared Function CanHostBePinged(ByVal IPAddr_DNS_OR_Host_Name As String) As Boolean 
     Dim p As New Ping 
     Dim po As New PingOptions 

     po.Ttl = 256 
     po.DontFragment = False 

     Dim stringOut As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDE" 
     Dim streamOut As Byte() = System.Text.Encoding.ASCII.GetBytes(stringOut) 

     Try 
      Dim reply As PingReply = p.Send(IPAddr_DNS_OR_Host_Name, 30, streamOut) 
      If reply.Status = IPStatus.Success Then 
       Return True 
      Else 
       Return False 
      End If 
     Catch ex As Exception 
      Return False 
     End Try 

    End Function 


End Class 
+0

धन्यवाद, मैं वीएमवेयर प्लगइन का शोध करूंगा ... चीयर्स – user1786176

+0

मेरा मानना ​​है कि उन्होंने सी # के लिए पूछा, वीबी –

+0

सच नहीं। इसलिए "केवल स्वाद के लिए"। वीबी -> सी # विशेष रूप से इस वर्ग के लिए छोटा है। –