بسم الله الرحمان الرحيم
السلام عليكم و رحمة الله
مقدمة :
الدرس هو عبارة عن شرح كيفية التعامل مع تطبيقات و شبكات الويب من خلال مكيبة lwp
و التي هي إختصار لمكتبة من وحدات www في البيرل
تمكنك هذه المكيبة من تنفيذ عديد المهام مثل إسترجاع صفحات ويب و تقديم تماذج ويب و التعامل البروتوكولات
المعروفة مثل HTTP,HTTPS,FTP,NNTP و غيرها
هناك العديد من المكيبات في البيرل تقوم بفس عمل هالمكتبة أمثال Mechanize & socket & etc
و مثل ما هو معروف ال LWP هي الأكثر استخداما للدخول إلى البيانات على شبكة الإنترنت.
المهم تبدأ بشرح كيفة التعامل مع هذه المكتبة
أولا يجب علينا أن نعلم أن هنا 10 كلاسات في هذه المكتبة مثل ما هو موضح في الصورة

رح نحاول نشرح البعض منها
أولا قبل البداية بشرح الكلاسات تجب علينا التأكد من أن المكتبة موجودة و مثبتة
المهم نطبق هالأمر لمعرفة إزا كانت المكتبة موجودة و نشوف إصدارها
كود PHP:
perl -MLWP -e 'print "$LWP::VERSION\n"'
إزا كانت النتيجة 6.05 أو أية إصدار آخر معناها ما في مشاكل و الشغل زي الفل أما إزا كانت Can't locate LWPL.pm
فهذا يعني أنه يجب تثبيتها . للتثبيت
كود PHP:
perl -MCPAN -eshell
install Bundle::LWP
LWP::Simple
نستعملها في إنشاء عميل علي شبكة الإنتربيت بسرعة و فيها 8 وظائف
كود PHP:
use LWP::Simple;
my $x = get("http://sec4ever.com");
للحصول علي محتوي الموقع أو ما يعرف بال content
كود PHP:
use LWP::Simple;
use Data::Dumper;
my @results = head("http://www.google.com");
print Dumper \@results;
تستعمل لمعرفة
Headers iformation تستعمل لمعرفة مثل
Content_Type & Documen_length & etc
و غيرها و رح تكون النتيجة هكذا
كود:
$VAR1 = [
'text/html; charset=windows-1256',
undef,
undef,
undef,
'gws'
];
طباعة محتويات
getprint لطباعة محتويات المواقع بدلا من get فقط
كود PHP:
use LWP::Simple;
getprint("http://google.com");
كذلك
getstore المعروفة خصوصا في إستغلالات LFD لأنها تطبع محتوي الصفحة في ملف
كود PHP:
use LWP::Simple;
getstore("http://google.com","1.txt");
Mirror لنسخ محتوي الموقع في ملف معين تختلف عن قبلها getstore لأنها تتغير بتغير طول الصفحة أو بتغير الوقت
طريقة الإستعمال سهلة كالعادة
كود PHP:
mirror($url, $file)
و الوظيفتين الأخيرتين تستعملان بكثرة لأنها عبارة علي
True & False مثال للبحث علي ملف في موقع
كود PHP:
use LWP::Simple;
my $file = "sec.php";
my $x = get("http://site.com/".$file);
if ($x->is_sucess) {
print "the sec.php file exist\n";
}
elsif ($x->is_error) {
print "There is no sec.php file\n";
}
LWP::UserAgent
و هي الأكثر إستعمالا بإعتبارها تستخدم للتعامل مع request و إلخ ..
رح يطول شرحها لهيك رح أستخدم كود فقط لشرحها
كود PHP:
#!/usr/bin/perl -w
use LWP::UserAgent;
#browser = instance of the UserAgent class
my $browser = LWP::UserAgent->new;
$browser->timeout(10);# time out of request is 10 (s)
$browser->agent("msnbot/1.0 (+http://search.msn.com/msnbot.htm)");# user agent is msnbot/1.0 (+http://search.msn.com/msnbot.htm)
# if you wanna user $roxy
$browser->proxy( 'http', 'http://myproxy.com' );
my $url = "http://sec4ever.com"; # The url to test
my $response = $browser->get($url); die "Can’t get $url \n", $response->status_line
unless $response->is_success;
# check if the content is html
die $!, $response->content_type unless $response->content_type eq 'text/html';
#print content to console
print $response->decoded_content;
# print headers as strings
print $response->headers()->as_strings;
# if you wanna user $roxy
$browser->proxy( 'http', 'http://myproxy.com' );
المكتبة غنية جدا لذلك حاولت بسط الأشياء و الأمور المهمة و اللازمة فيها أيضا التعامل مع الكوكيز و غيرها و فينا نستعملها في
Authentication و غيرها إن شاء الله في الدروس الجاية نتطرق لها
أتمنى يكون الشرح مفهوم. أي سؤال, توضيح أو إستفسار في رد.
في أمان الله ~