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

سؤال: كيف احصل على ال Ip ؟

بدأه الاخير زمانه في 17 ديسمبر 2008 · 19 رد · 4,587 مشاهدة · في قسم Cross Platform GUI Libraries العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

احاول عمل برنامج بسيط كما في الصورة

post-47438-1229526083_thumb.jpg

لكني لم انجح ،، لا احصل على شيء.

انا استخدمت ال Assistant ،

جربت مع QHostInfo ، QHostAddress ، QNetworkAddressEntry ،

لكن يبدو اني استخدمتهم بصورة خاظئة

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#2
[color= #666666; font-style: italic;]// To find the IP address of www.trolltech.com

 QHostInfo[color= #339933;]::[color= #004000;]lookupHost[color= #009900;]([color= #0000ff;]"www.trolltech.com"[color= #339933;],

                       this[color= #339933;], SLOT[color= #009900;](printResults[color= #009900;](QHostInfo[color= #009900;])[color= #009900;])[color= #009900;])[color= #339933;];

أنظر فئة QHostInfo

عند طلب العناوين سوف تحصل على QHostAddress ثم أستخدم الدالة toString وقم بطباعتها .

تم تعديل هذه المشاركة بواسطة مصفوفة في 17 ديسمبر 2008 في 21:22

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#3

مثال آخر

[color= #993333;]int main[color= #009900;]([color= #993333;]int argc, [color= #993333;]char [color= #339933;]*argv[color= #009900;][[color= #009900;]][color= #009900;])

[color= #009900;]{

    QApplication a[color= #009900;](argc, argv[color= #009900;]);

    QHostInfo hf[color= #339933;]=QHostInfo[color= #339933;]::[color= #202020;]fromName[color= #009900;]([color= #ff0000;]"www.qt-ar.org"[color= #009900;]);

    QLabel lab;

    lab.[color= #202020;]setText[color= #009900;](hf.[color= #202020;]addresses[color= #009900;]([color= #009900;]).[color= #202020;]at[color= #009900;]([color= #cc66cc;]0[color= #009900;]).[color= #202020;]toString[color= #009900;]([color= #009900;])[color= #009900;]);

    lab.[color= #202020;]show[color= #009900;]([color= #009900;]);

    [color= #b1b100;]return a.[color= #202020;]exec[color= #009900;]([color= #009900;]);

[color= #009900;]}

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#4

وعليكــم السـلام ورحمة الله وبركاتـه..

مثل ما ذكر اخي مصفوفة ، وللحصول على IP الجهاز ، جرب هذا الكود :

QList[color= #000000;]<QHostAddress[color= #000000;]> list [color= #000000;]= QNetworkInterface[color= #000000;]::[color= #808000;]allAddresses[color= #000000;]([color= #000000;]);

foreach[color= #000000;](QHostAddress addr, list[color= #000000;])

[color= #000000;]{

	qDebug[color= #000000;]([color= #000000;]) [color= #000000;]<< addr.[color= #808000;]toString[color= #000000;]([color= #000000;]);

[color= #000000;]}

او هذا :

QHostInfo info [color= #000000;]= QHostInfo[color= #000000;]::[color= #808000;]fromName[color= #000000;]( QHostInfo[color= #000000;]::[color= #808000;]localHostName[color= #000000;]([color= #000000;]) [color= #000000;]);

QList[color= #000000;]<QHostAddress[color= #000000;]> list[color= #000000;]= info.[color= #808000;]addresses[color= #000000;]([color= #000000;]);

 

foreach[color= #000000;](QHostAddress addr, list[color= #000000;])

[color= #000000;]{

	qDebug[color= #000000;]([color= #000000;]) [color= #000000;]<< addr.[color= #808000;]toString[color= #000000;]([color= #000000;]);

[color= #000000;]}

الاثنين يخرجوا نفس النتيجة.

بالتوفيق،

#5

بالنسبة للخادم المحلي هو ثابت يمكن معرفته من خلال الثابت التعدادي التالي QHostAddress::LocalHost

والذي يمثل دائما 127.0.0.1 لا يتغير

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#6

السلام عليكــم ورحمـة الله وبركاتــه

شكرا على الاجابة ،،

مصفوفة انا قصدي الحصول على IP الجهاز ،،

تمام اخي Sudanix .

ايضا فشلت في الحصول على ال MAC ،

انا حاولت هكذا

QNetworkInterface Mac = QNetworkInterface::interfaceFromName(QHostInfo::localHostName());
  txtMAC->setText(Mac->toString()));

المشكلة في التحويل الى string ، يظهر خطأ ،، ف QNetworkInterface ليس به دالة toString ،

ولم اعرف كيف احول .

حاولت طريق ثانية ايضا لم انجح

QNetworkInterface obj;//= new QNetworkInterface();
 QString mac = obj.hardwareAddress();

------------------

محمد لم ألتقي اليوم مع الاستاذ ،،

حالما يكتمل الامر سأعطيك خبر

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#7
الاخير زمانه كتب:
السلام عليكــم ورحمـة الله وبركاتــه

ايضا فشلت في الحصول على ال MAC ،

انا حاولت هكذا

QNetworkInterface Mac = QNetworkInterface::interfaceFromName(QHostInfo::localHostName());
			 txtMAC->setText(Mac->toString()));

المشكلة في التحويل الى string ، يظهر خطأ ،، ف QNetworkInterface ليس به دالة toString ،

ولم اعرف كيف احول .

حاولت طريق ثانية ايضا لم انجح

QNetworkInterface obj;//= new QNetworkInterface();
			QString mac = obj.hardwareAddress();

عليكم السلام و رحمة الله

حاول اخي, تعمل كائن من QVarient مشان تستعمل toString() بواسطته و تخزن القيمة النصية في QString

حاول تطبيق الشيفرة التالية, يمكن بتصلح معك::

  1.  
  2. QNetworkInterface Mac =
  3. QNetworkInterface::interfaceFromName(QHostInfo::localHostName());
  4.  
  5. // Create a QVariant object.
  6. QVariant v(Mac);
  7.  
  8. // Now you have got a QString object
  9. // contains "Mac" value as string data type.
  10. QString MacToStr = v.toString();
  11.  
  12. //Now you can pass MacToStr in as an argument.
  13. QLabel label(tr(MacToStr));
  14.  
  15.  
  16.  

طبعاً الشيفرة محاولة التحويل إلى قيمة نصية string مشان تقدر تستعملها بالطباعة على الشاشة بواسطة QLabel مثلاً.

ملاحظة:

انا عاملة المشاركة كمحاولة لاستعمال toString و مش لحل المشكلة الرئيسية.

موفقين إن شاء الله

تم تعديل هذه المشاركة بواسطة رغـد في 19 ديسمبر 2008 في 05:59

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#8

جرب :

 

QNetworkInterface networkInterface[color= #000000;]= QNetworkInterface[color= #000000;]::[color= #808000;]interfaceFromName[color= #000000;](QHostInfo[color= #000000;]::[color= #808000;]localHostNa
me[color= #000000;]([color= #000000;])[color= #000000;]);

QString MAC[color= #000000;]=networkInterface.[color= #808000;]hardwareAddress[color= #000000;]([color= #000000;]);
;

بالتوفيق،

#9
الاخير زمانه كتب:
المشكلة في التحويل الى string ، يظهر خطأ ،، ف QNetworkInterface ليس به دالة toString ،

ولم اعرف كيف احول .

حاولت طريق ثانية ايضا لم انجح

QNetworkInterface obj;//= new QNetworkInterface();
	  QString mac = obj.hardwareAddress();

SudaNix كتب:
جرب :

  1. QNetworkInterface networkInterface= QNetworkInterface::interfaceFromName(QHostInfo::localHost
    Name()); QString MAC=networkInterface.hardwareAddress();
  2.  

;

بالتوفيق،

المفروض بتكون بكل بساطة متل مشاركة الأخ الكريم Sudanix, الأخيرة

http://' target="_blank">QString QNetworkInterface::hardwareAddress () const

Returns the low-level hardware address for this interface. On Ethernet interfaces, this will be a MAC address in string representation, separated by colons.

Other interface types may have other types of hardware addresses. Implementations should not depend on this function returning a valid MAC address.

ولكن واضح بأنه جرب هذه الطريقة و لم تنجح, لذلك كتبت مشاركتي كتجربة اخرى...

اطيب المُنى

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#10

السلام عليكــم ورحمـة الله وبركاتــه

اختي رغد ، يظهر لي خطأ

 error: no matching function for call to `QVariant::QVariant(QNetworkInterface&)'

SudaNix كتب:
جرب :

  1.  
  2. QNetworkInterface networkInterface= QNetworkInterface::interfaceFromName(QHostInfo::localHostNa
    me());
  3. QString MAC=networkInterface.hardwareAddress();
  4.  
  5.  

;

بالتوفيق،

لا يظهر شيء اخي SudaNix !

سأرفق لكم البرنامج

FindIP.rar

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#11
الاخير زمانه كتب:
السلام عليكــم ورحمـة الله وبركاتــه

اختي رغد ، يظهر لي خطأ

 error: no matching function for call to `QVariant::QVariant(QNetworkInterface&)'

وعليكــم السـلام ورحمة الله وبركاتـه..

نعم اخي هناك خطأ لأن QVariant ما بيقبل QNetworkInterface&.

آسفة كان خطأي انا

:blush:

ما شاء الله اخي انت واصل لمواضيع متقدمة, انا كنت مفكرتك مبتديء برسالتك الكريمة.

عموماً رأيي لو بنتظر الأخ Sudanix من معرفة سبب الخطأ.

لأن المفروض تكون بكل بساطة باستعمال الدالة hardwareAdress لأن الواضح بالتوثيقات انها تؤدي الغرض المطلوب.

ما شاء الله بتمنى لك التوفيق

:happy:

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#12
رغـد كتب:
ما شاء الله اخي انت واصل لمواضيع متقدمة, انا كنت مفكرتك مبتديء برسالتك الكريمة.

:happy:

لا يا اختي اي مواضيع متقدمة ! انا لسه مبتدئ في اول الطريق.

و منكم نستفيد

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#13

اعتذر عن انقطاع النت

أخي بالنسبة لل mac فهي فقط تتعامل مع شبكات الإيثرنت من المعروف ضمن معايير osi ال ip يتعام مع طبقة الشبكة ولايتعامل مع الطبقة المادية فيتم تغليف رزمة ip بلوح ايثرنت وهو الذي يتعامل مع عناوين mac للأجهزة وليس مع عناويين ip

أعتقد أن المشكلة انك لا تتعامل مع شبكة إيثرنت (اعتقاد) والعلم عند الله

أو ممكن تكون المشكلة برمجية ؟؟؟

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#14

طريقة إضافة فئة الى حاوية QVariant

 

namespace MyNamespace

 [color= #009900;]{

     [color= #339933;]...

 [color= #009900;]}

 Q_DECLARE_METATYPE[color= #009900;](MyNamespace[color= #339933;]::[color= #004000;]MyStruct[color= #009900;])

 

 MyStruct s[color= #339933;];

 QVariant [color= #000000; font-weight: bold;]var[color= #339933;];

 [color= #000000; font-weight: bold;]var[color= #339933;].setValue[color= #009900;](s[color= #009900;])[color= #339933;]; [color= #666666; font-style: italic;]// copy s into the variant

 

 [color= #339933;]...

 

 [color= #666666; font-style: italic;]// retrieve the value

 MyStruct s2 [color= #339933;]= [color= #000000; font-weight: bold;]var[color= #339933;].value[color= #339933;]<MyStruct[color= #339933;]>[color= #009900;]([color= #009900;])[color= #339933;];

تم تعديل هذه المشاركة بواسطة مصفوفة في 26 ديسمبر 2008 في 20:53

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#15
مصفوفة كتب:
اعتذر عن انقطاع النت

أخي بالنسبة لل mac فهي فقط تتعامل مع شبكات الإيثرنت من المعروف ضمن معايير osi ال ip يتعام مع طبقة الشبكة ولايتعامل مع الطبقة المادية فيتم تغليف رزمة ip بلوح ايثرنت وهو الذي يتعامل مع عناوين mac للأجهزة وليس مع عناويين ip

أعتقد أن المشكلة انك لا تتعامل مع شبكة إيثرنت (اعتقاد) والعلم عند الله

أو ممكن تكون المشكلة برمجية ؟؟؟

ال mac موجود ، لو نفذت ايعاز ال ipconfig /all سيظهر لي رقم ال mac ،،

المفروض ان المشكلة برمجية ،،

اعتقد انه لا زالت المصادر قليلة على ال Qt ، و ال Assistant لا يعطي امثلة لكل شيء.

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#16

السلام عليكــم ورحمـة الله وبركاتــه

قم بتجربة الكود التالي

 

[color= #339933;]#include <QtGui>

[color= #339933;]#include<QtNetwork>

 

[color= #993333;]int main[color= #009900;]([color= #993333;]int argc, [color= #993333;]char [color= #339933;]*argv[color= #009900;][[color= #009900;]][color= #009900;])

[color= #009900;]{

    QApplication a[color= #009900;](argc, argv[color= #009900;]);

 

    QLabel lab;

    lab.[color= #202020;]setText[color= #009900;]( QNetworkInterface[color= #339933;]::[color= #202020;]allInterfaces[color= #009900;]([color= #009900;]).[color= #202020;]at[color= #009900;]([color= #cc66cc;]0[color= #009900;]).[color= #202020;]hardwareAddress[color= #009900;]([color= #009900;])[color= #009900;]);

    lab.[color= #202020;]show[color= #009900;]([color= #009900;]);

    [color= #b1b100;]return a.[color= #202020;]exec[color= #009900;]([color= #009900;]);

[color= #009900;]}

أنا جربته مع شبكة ايثرنت منزلية وأعطاني ال mac وتحصله صحيح نفس ماهو مكتوب في حال ذهبت الى نافذة سطر الأوامر وكتبت الأمر getmac

وإن شاء الله في خلال اسبوعين يدخل ال dsl واكون في تواصل مستمر معكم .

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#17

وعليكــم السـلام ورحمة الله وبركاتـه..

اهلا اخي محمد ،، وين هل غيبة؟

مضبوط اخي الان تنفذ البرنامج تمام و حصلت على عنوان ال MAC .

مشكور ،،

بالمناسبة ،، اين وصلت مع ال OpenGL ؟

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#18

الحمدالله

بالنسبة للغيبة أخوك مجبر عموما إن شاء الله هي أيام ونكون على اتصال مستمر معكم

أما موضوع openGL لي فترة موقف لأسباب ليست بالضرورة مقنعة ولكن في حال طلبتني في الخدمة فأنا جاهز إن شاء الله .

أخوك/ محمد .

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#19

ان شاء الله المانع خير ،،

انا ايضا حاليا موقف .. انتظر العطلة الربيعية :D

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#20

الحال من بعضه :)

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…