الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج ادارة عن طريق ip

بدأه هند العرب في 24 ديسمبر 2010 · 13 رد · 980 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

شبكة مكونة من 10 أجهزة موصلين للانترنت عبر ((روتر))

بحيث نتمكن من عمل بحث على ال ip ضمن مجال معين

ثم اختيار جهاز من خلال ip للنفاذ اليه

اريد المساعدة في البدء بانشاء هذا الكود

النقطة التي توقفت عندها هي كيف بامكاني الوصول لل ip من خلال برنامج جافا ؟؟؟؟؟؟؟

public void checkHosts(String subnet){
   int timeout=1000;
   for (int i=1;i<254;i++){
   	String host=subnet + "." + i;
   	if (InetAddress.getByName(host).isReachable(timeout)){
       	System.out.println(host + " is reachable");
   	}
   }
}

نرجو التفاعل والنقاش

تم تعديل هذه المشاركة بواسطة علاء الصالحي في 24 ديسمبر 2010 في 13:31 — السبب: إضافة وسم code

#2

هل تيريدين الاتصال مع جهاز عن طريق المعرف ip الخاص به؟

إن كان كذلك استخدمي socket

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3
علاء الصالحي كتب:

هل تيريدين الاتصال مع جهاز عن طريق المعرف ip الخاص به؟

إن كان كذلك استخدمي socket

تحياتي

شكرا لتفاعلك

الفكره هي انه لدي شبكة

مكونة من أجهزة وكل جهاز يحمل ip

ال ip يفضل تحديده ضمن مجال لتسهيل البحث

المطلوب ايجاد برنامج يمكنني من عمل بحث scan على الحواسيب المتصلة بالشبكة

ثم اظهار قائمة بالحواسيب والاي بي

ثم امكانية النفاذ لأحد الحواسيب اذا دعت الضرورة

#4

جيد لديك شبكة وقد قمت بفحص الموصلين معك في الشبكة خلال مجال معين

تبقى عليك النفاذ إلى الشبكة

هل هذا صحيح؟ أم أن فهمي غير مكتمل؟

على كل النفاذ إلى جهاز معين يحتاج إلى عميل Client على طرف الجهاز المراد الإتصال به

يستمع إلى port معين بحيث يقوم بتلبية الأوامر التي تعطى له

عدا عن ذلك لا يمكنك القيام بأي شيء باستخدام الجافا أو أي لغة أخرى

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#5
علاء الصالحي كتب:

جيد لديك شبكة وقد قمت بفحص الموصلين معك في الشبكة خلال مجال معين

تبقى عليك النفاذ إلى الشبكة

هل هذا صحيح؟ أم أن فهمي غير مكتمل؟

على كل النفاذ إلى جهاز معين يحتاج إلى عميل Client على طرف الجهاز المراد الإتصال به

يستمع إلى port معين بحيث يقوم بتلبية الأوامر التي تعطى له

عدا عن ذلك لا يمكنك القيام بأي شيء باستخدام الجافا أو أي لغة أخرى

تحياتي

شكرا لك على التواصل

الفكره الأولية هي ايجاد برنامج يقوم بعملية البحث

public void checkHosts(String subnet){
   int timeout=1000;
   for (int i=1;i<254;i++){
        String host=subnet + "." + i;
        if (InetAddress.getByName(host).isReachable(timeout)){
        System.out.println(host + " is reachable");
        }
   }
}

هذا البرنامج لا يعطيني النتائج التي اريدها

المطلوب ::: ان يقوم بالبرمج بطباعة قائمة من ip المتصلة وحالتها

وفيما بعد ممكن يكون خطوة ثانية استخدام Rmi

كفكره اولية اريد البحث عن ip

شكرا لك على التواصل

#6

لم أستطع معرفة المشكلة بالضبط

يبدو لي الكود يقوم باللازم

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7
علاء الصالحي كتب:

لم أستطع معرفة المشكلة بالضبط

يبدو لي الكود يقوم باللازم

تحياتي

الملف المرفق يوضح

اريد من جهاز bod معرفة ip باقي التجهيزرات عن طريق برنامج جافا

بيحث يتم عرض ip على شكل قائمة مرتبة

الأجهزة المربوطه تحتوي على ip بشكل تسلسلي

البرنامج لايعمل عندي أظن فيه مشكلة

post-235389-041362000 1293565959_thumb.j

المرفقات
IP.jpg
#8

هل أوقفت الجدار الناري على هذه الأجهزة؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#9
علاء الصالحي كتب:

هل أوقفت الجدار الناري على هذه الأجهزة؟

تحياتي

نعم موقف

#10

ليس لدي ما أقدمه لك

ما لم يكن لديك منفذ على هذه الأجهزة يستقبل الطلبات ويرد عليها

فلا أعرف طريقة تقوم بذلك

غير ما قومتي بوضعه هنا

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#11
علاء الصالحي كتب:

ليس لدي ما أقدمه لك

ما لم يكن لديك منفذ على هذه الأجهزة يستقبل الطلبات ويرد عليها

فلا أعرف طريقة تقوم بذلك

غير ما قومتي بوضعه هنا

تحياتي

شكرا لك للتفاعل

ولك جزيل الشكر

مارأيك بهذا الكود

String command = null;   
            if(System.getProperty("os.name").equals("Linux"))   
                command = "ifconfig";   
            else  
                command = "ipconfig";   
            Runtime r = Runtime.getRuntime();   
            Process p = r.exec(command);   
            Scanner s = new Scanner(p.getInputStream());   

            StringBuilder sb = new StringBuilder("");   
            while(s.hasNext())   
                sb.append(s.next());   
            String ipconfig = sb.toString();   
            Pattern pt = Pattern.compile("192\\.168\\.[0-9]{1,3}\\.[0-9]{1,3}");   
            Matcher mt = pt.matcher(ipconfig);   
            mt.find();   
            String ip = mt.group();

وهذا ايضا

 String result = null;   
            Enumeration<NetworkInterface> interfaces = null;   
            try {   
                interfaces = NetworkInterface.getNetworkInterfaces();   
            } catch (SocketException e) {   
                // handle error   
            }   

            if (interfaces != null) {   
                while (interfaces.hasMoreElements() && Util.isEmpty(result)) {   
                    NetworkInterface i = interfaces.nextElement();   
                    Enumeration<InetAddress> addresses = i.getInetAddresses();   
                    while (addresses.hasMoreElements() && (result == null || result.isEmpty())) {   
                        InetAddress address = addresses.nextElement();   
                        if (!address.isLoopbackAddress()  &&   
                                address.isSiteLocalAddress()) {   
                            result = address.getHostAddress();   
                        }   
                    }   
                }   
            }
#12
public class LocalClient implements ClientInterface, ClientStateChangeListener {

    public void publicMessageReceived(String msg, ClientID from) {

        System.out.println("client :" + from.hostName() + " said:" + msg);
    }

    public void privateMessageReceived(String msg, ClientID from) {
    }

    public void clientConnected(SocketStreamRW connection) {
    }

    public void errMessage(String error, String from) {
    }

    public void infMessage(String info, String from) {
    }

    public void clientStateChanged(ClientStateChangeEvent evt) {

        ClientID id = evt.getClient();

        switch (evt.getNewState()) {

            case ClientStateChangeEvent.ON:

                System.out.println("client: " + id.hostName() + " is reachable");

                break;

            case ClientStateChangeEvent.OFF:

                System.out.println("client: " + id.hostName() + " is not reachable");
        }

    }

    public static void main(String[] args) throws Exception {

        LocalClient localclient = new LocalClient();

        NetworkService ns = new NetworkService(localclient);

        ns.addClientStateChangeListener(localclient);

        ns.startService(false);

        Thread.sleep(500);

        ns.broadcast("hello!");

        Thread.sleep(500);

        ns.broadcast("bye!");

        ns.stopService();

    }
}

صباح الخير يا جماعه

اذا كنت فهمت سؤالك , شوفي المثال ده يمكن يفيدك.

يعني لو شغلتي البرنامج ده على كل جهاز في الشبكه سيعرض كل جهاز عناوين بقيه الاجهزه وطالما البرنامج شغال فإن الجهاز يكون reachable . وبالإمكان التواصل معه من قبل البقيه وهكذا , وكمثال نقوم هنا بإرسال hello الاجهزه المتواجده ثم bye قبل اغلاق البرنامج (وهناك داله ايضا لإرسال رساله لأحد الاجهزه فقط وداله لإنشاء اتصال tcp/ip) .

نزلي الحزمه من هنا:

http://sourceforge.n...networkservice/

تم تعديل هذه المشاركة بواسطة Dr.Robert في 29 ديسمبر 2010 في 06:51

1

بحثت عن قلمي البارحة فلم أجدة!

...............

لم أجد سوى لوحة المفاتيح هذة

.............

تتطلع إلي بشفقة..

.............

أكاد أسمعها .. تقول (ألم يسمع بGoogle ؟!؟؟)

#13
Dr.Robert كتب:

public class LocalClient implements ClientInterface, ClientStateChangeListener {

    public void publicMessageReceived(String msg, ClientID from) {

        System.out.println("client :" + from.hostName() + " said:" + msg);
    }

    public void privateMessageReceived(String msg, ClientID from) {
    }

    public void clientConnected(SocketStreamRW connection) {
    }

    public void errMessage(String error, String from) {
    }

    public void infMessage(String info, String from) {
    }

    public void clientStateChanged(ClientStateChangeEvent evt) {

        ClientID id = evt.getClient();

        switch (evt.getNewState()) {

            case ClientStateChangeEvent.ON:

                System.out.println("client: " + id.hostName() + " is reachable");

                break;

            case ClientStateChangeEvent.OFF:

                System.out.println("client: " + id.hostName() + " is not reachable");
        }

    }

    public static void main(String[] args) throws Exception {

        LocalClient localclient = new LocalClient();

        NetworkService ns = new NetworkService(localclient);

        ns.addClientStateChangeListener(localclient);

        ns.startService(false);

        Thread.sleep(500);

        ns.broadcast("hello!");

        Thread.sleep(500);

        ns.broadcast("bye!");

        ns.stopService();

    }
}

صباح الخير يا جماعه

اذا كنت فهمت سؤالك , شوفي المثال ده يمكن يفيدك.

يعني لو شغلتي البرنامج ده على كل جهاز في الشبكه سيعرض كل جهاز عناوين بقيه الاجهزه وطالما البرنامج شغال فإن الجهاز يكون reachable . وبالإمكان التواصل معه من قبل البقيه وهكذا , وكمثال نقوم هنا بإرسال hello الاجهزه المتواجده ثم bye قبل اغلاق البرنامج (وهناك داله ايضا لإرسال رساله لأحد الاجهزه فقط وداله لإنشاء اتصال tcp/ip) .

نزلي الحزمه من هنا:

http://sourceforge.n...networkservice/

شكرا جزيلا لك أخي

وان شاء الله تكون في ميزان حسناتك

-----

اخي ليس لدي خبرة في الحزم

كيف استخدم هذه الحزمة ؟؟؟ ومالفائدة منها

وشكراااااااااا جزيلا

#14

حتى تستطيعي تشغيل هذا المثال فأنت محتاجه لإستيراد بعض الفئات من هذه الحزمه

حملي الحزمه من الرابط اعلاه وحطي الملف banafa.jar في الclasspath الخاص بالبرنامج

وهذا كود البرنامج كاملا مع الاستيراد:

import banafa.networkservice.ClientID;
import banafa.networkservice.ClientInterface;
import banafa.networkservice.ClientStateChangeEvent;
import banafa.networkservice.ClientStateChangeListener;
import banafa.networkservice.NetworkService;
import banafa.networkservice.SocketStreamRW;

public class LocalClient implements ClientInterface, ClientStateChangeListener {

    public void publicMessageReceived(String msg, ClientID from) {

        System.out.println("client :" + from.hostName() + " said:" + msg);
    }

    public void privateMessageReceived(String msg, ClientID from) {
    }

    public void clientConnected(SocketStreamRW connection) {
    }

    public void errMessage(String error, String from) {
    }

    public void infMessage(String info, String from) {
    }

    public void clientStateChanged(ClientStateChangeEvent evt) {

        ClientID id = evt.getClient();

        switch (evt.getNewState()) {

            case ClientStateChangeEvent.ON:

                System.out.println("client: " + id.hostName() + " is reachable");

                break;

            case ClientStateChangeEvent.OFF:

                System.out.println("client: " + id.hostName() + " is not reachable");
        }

    }

    public static void main(String[] args) throws Exception {

        LocalClient localclient = new LocalClient();

        NetworkService ns = new NetworkService(localclient);

        ns.addClientStateChangeListener(localclient);

        ns.startService(false);

        Thread.sleep(500);

        ns.broadcast("hello!");

        Thread.sleep(500);

        ns.broadcast("bye!");

        ns.stopService();

    }
}

اذا كنت لا تعرفي طريقة تضمين حزمه في الclasspath ابحثي هنا في المنتدى لأنها تختلف من IDE الى اخر. اما اذا كنت تستخدمي محرر النصوص فقط لكتابه برنامجك :

javac -classpath .;banafa.jar LocalClient.java

java -classpath .;banafa.jar LocalClient

بالنسبه لإستخدامات الحزمه:

http://www.arabteam2...1

//attachment/100316

تم تعديل هذه المشاركة بواسطة Dr.Robert في 30 ديسمبر 2010 في 23:23

بحثت عن قلمي البارحة فلم أجدة!

...............

لم أجد سوى لوحة المفاتيح هذة

.............

تتطلع إلي بشفقة..

.............

أكاد أسمعها .. تقول (ألم يسمع بGoogle ؟!؟؟)

مواضيع مشابهة