en: The program's output will be displayed.

translation: پروگرام کا آؤٹ پُٹ ظاہر کیا جائے گا۔

target_lang: ur

domain: technical

complexity: simple


en: We can change the position of the functions.

translation: ہم فنکشنز کی پوزیشن تبدیل کر سکتے ہیں۔


en: The while loop is the simplest form of loop in Python.

translation: وائل لوپ پائیتھن میں لوپ کی سب سے آسان شکل ہے۔

complexity: moderate


en: You need a mechanism to stop that process.

translation: آپ کو اس عمل کو روکنے کے لیے ایک طریقہ کار کی ضرورت ہے۔


en: In each step b progresses by adding 1 to its value.

translation: ہر قدم پر، b اپنی قدر میں 1 کا اضافہ کرکے آگے بڑھتا ہے۔


en: The output is quite obvious.

translation: نتیجہ کافی واضح ہے۔


en: Let us explain the steps one by one to understand it properly.

translation: آئیے اسے صحیح طریقے سے سمجھنے کے لیے ایک ایک کرکے مراحل کی وضاحت کرتے ہیں۔


en: The most common loop used in Python is for loop.

translation: پائیتھن میں استعمال ہونے والا سب سے عام لوپ فار لوپ ہے۔


en: We could have iterated through line by line as they are indexed.

translation: ہم انڈیکس کیے جانے کے مطابق لائن بہ لائن بھی دہرا سکتے تھے۔

complexity: complex


en: This is extremely useful.

translation: یہ انتہائی مفید ہے۔


en: You can search any character inside any string.

translation: آپ کسی بھی سٹرنگ کے اندر کسی بھی حرف کو تلاش کر سکتے ہیں۔


en: In Python, functions or subroutines are extremely important for reusability of codes.

translation: پائیتھن میں، کوڈز کو دوبارہ استعمال کرنے کے لیے فنکشنز یا سب روٹینز انتہائی اہم ہیں۔


en: We have called that function three times inside main() function.

translation: ہم نے main() فنکشن کے اندر اس فنکشن کو تین بار کال کیا ہے۔


en: You can pass two arguments inside loops() function.

translation: آپ loops() فنکشن کے اندر دو دلائل پاس کر سکتے ہیں۔


en: Searching and replacing with regular expressions is equally easy.

translation: ریگولر ایکسپریشن کے ساتھ تلاش کرنا اور تبدیل کرنا یکساں طور پر آسان ہے۔


en: We use “re” module and it does the simple jobs.

translation: ہم “re” ماڈیول استعمال کرتے ہیں اور یہ آسان کام کرتا ہے۔


en: All the words “lenore” and “nevermore” have been replaced.

translation: تمام الفاظ “lenore” اور “nevermore” کو تبدیل کر دیا گیا ہے۔


en: We will try to reuse the code so that we can use them again and again.

translation: ہم کوڈ کو دوبارہ استعمال کرنے کی کوشش کریں گے تاکہ ہم انہیں بار بار استعمال کر سکیں۔


en: Beginners may find this “try block” quite intimidating.

translation: ابتدائی افراد کو یہ “try block” کافی خوفناک لگ سکتا ہے۔


en: I hope you have already written a lot of codes.

translation: مجھے امید ہے کہ آپ نے پہلے ہی بہت سارے کوڈ لکھے ہیں۔


en: The book provides a comprehensive introduction to ethical hacking.

translation: یہ کتاب اخلاقی ہیکنگ کا ایک جامع تعارف فراہم کرتی ہے۔


en: Install VirtualBox to create a safe environment for experimentation.

translation: تجربات کے لیے ایک محفوظ ماحول بنانے کے لیے ورچوئل باکس انسٹال کریں۔


en: Ethical hacking is not associated with illegal activities.

translation: اخلاقی ہیکنگ کا تعلق غیر قانونی سرگرمیوں سے نہیں ہے۔


en: The author uses Ubuntu Linux as his default operating system.

translation: مصنف اوبنٹو لینکس کو اپنے ڈیفالٹ آپریٹنگ سسٹم کے طور پر استعمال کرتا ہے۔


en: This book is intended for beginners who want to learn ethical hacking.

translation: یہ کتاب ان ابتدائی افراد کے لیے ہے جو اخلاقی ہیکنگ سیکھنا چاہتے ہیں۔


en: You should not try to penetrate any system without permission.

translation: آپ کو اجازت کے بغیر کسی بھی نظام میں داخل ہونے کی کوشش نہیں کرنی چاہیے۔


en: The book covers the legal aspects of ethical hacking.

translation: کتاب اخلاقی ہیکنگ کے قانونی پہلوؤں کا احاطہ کرتی ہے۔


en: A virtual machine allows you to experiment safely.

translation: ورچوئل مشین آپ کو محفوظ طریقے سے تجربہ کرنے کی اجازت دیتی ہے۔


en: The author recommends using Kali Linux for ethical hacking.

translation: مصنف اخلاقی ہیکنگ کے لیے کالی لینکس استعمال کرنے کی سفارش کرتا ہے۔


en: Understanding networking is crucial for ethical hacking.

translation: اخلاقی ہیکنگ کے لیے نیٹ ورکنگ کو سمجھنا بہت ضروری ہے۔


en: Data travels through multiple layers in a network.

translation: ایک نیٹ ورک میں ڈیٹا متعدد تہوں سے گزرتا ہے۔


en: The OSI model is a framework for understanding network communication.

translation: او ایس آئی ماڈل نیٹ ورک مواصلات کو سمجھنے کے لیے ایک فریم ورک ہے۔


en: A network consists of devices connected through media.

translation: ایک نیٹ ورک میڈیا کے ذریعے جڑے ہوئے آلات پر مشتمل ہوتا ہے۔


en: The book also covers Python programming for ethical hacking.

translation: کتاب میں اخلاقی ہیکنگ کے لیے پائیتھون پروگرامنگ کا بھی احاطہ کیا گیا ہے۔


en: Learn about the different types of network models.

translation: مختلف قسم کے نیٹ ورک ماڈلز کے بارے میں جانیں۔


en: The goal is to protect systems, not to cause harm.

translation: مقصد نظاموں کی حفاظت کرنا ہے، نقصان پہنچانا نہیں۔


en: Ethical hackers use the same tools as malicious hackers.

translation: اخلاقی ہیکرز وہی ٹولز استعمال کرتے ہیں جو بدنیتی پر مبنی ہیکرز استعمال کرتے ہیں۔


en: The book provides examples of computer crimes and their punishments.

translation: کتاب کمپیوٹر جرائم اور ان کی سزاؤں کی مثالیں فراہم کرتی ہے۔


en: Always stay within the boundaries of the law.

translation: ہمیشہ قانون کی حدود میں رہیں۔


en: This book is a great resource for anyone interested in ethical hacking.

translation: یہ کتاب اخلاقی ہیکنگ میں دلچسپی رکھنے والے کسی بھی شخص کے لیے ایک بہترین وسیلہ ہے۔


en: The user requests the data and ultimately retrieves the data.

translation: صارف ڈیٹا کی درخواست کرتا ہے اور آخر کار ڈیٹا حاصل کرتا ہے۔


en: Data is formatted and encrypted.

translation: ڈیٹا کو فارمیٹ کیا جاتا ہے اور خفیہ کیا جاتا ہے۔


en: This layer manages end-to-end communication.

translation: یہ پرت آخر سے آخر تک مواصلات کا انتظام کرتی ہے۔


en: Suppose you type a password and log into your social media account.

translation: فرض کریں کہ آپ پاس ورڈ ٹائپ کرتے ہیں اور اپنے سوشل میڈیا اکاؤنٹ میں لاگ ان ہوتے ہیں۔


en: This layer maintains the end-to-end (user-to- server) communication so that you can remain logged into your page.

translation: یہ پرت آخر سے آخر تک (صارف سے سرور) مواصلات کو برقرار رکھتی ہے تاکہ آپ اپنے صفحے میں لاگ ان رہ سکیں۔


en: The name of the datagram of transport layer is “segment.”

translation: ٹرانسپورٹ لیئر کے ڈیٹاگرام کا نام “سیگمنٹ” ہے۔


en: It breaks your request into several fractions.

translation: یہ آپ کی درخواست کو کئی حصوں میں تقسیم کرتا ہے۔


en: It adds source and destination port numbers.

translation: یہ ماخذ اور منزل کے پورٹ نمبر شامل کرتا ہے۔


en: It also makes sure that your request finds the best path to reach the destination.

translation: یہ بھی یقینی بناتا ہے کہ آپ کی درخواست منزل تک پہنچنے کا بہترین راستہ تلاش کرے۔


en: It is nearing the end point that is the server’s hardware.

translation: یہ اختتامی نقطہ کے قریب ہے جو سرور کا ہارڈ ویئر ہے۔


en: The switches belong to the layer 2 that is data link, and the router fits in the layer 3 that is network.

translation: سوئچز لیئر 2 سے تعلق رکھتے ہیں جو ڈیٹا لنک ہے، اور روٹر لیئر 3 میں فٹ بیٹھتا ہے جو نیٹ ورک ہے۔


en: Routers are layer 3 devices and perform a few definite tasks.

translation: روٹرز لیئر 3 کے آلات ہیں اور چند مخصوص کام انجام دیتے ہیں۔


en: They are: packet switching, packet filtering, path selecting, and finally communicating.

translation: وہ یہ ہیں: پیکٹ سوئچنگ، پیکٹ فلٹرنگ، پاتھ سلیکٹنگ، اور آخر میں مواصلت۔


en: Switches basically deal with frame filtering and forwarding.

translation: سوئچز بنیادی طور پر فریم فلٹرنگ اور فارورڈنگ سے نمٹتے ہیں۔


en: Internetworking models encourage interoperability between different devices, providing a reference to describe the data communication.

translation: انٹرنیٹ ورکنگ ماڈل مختلف آلات کے درمیان باہمی فعالیت کی حوصلہ افزائی کرتے ہیں، جو ڈیٹا مواصلات کو بیان کرنے کے لیے ایک حوالہ فراہم کرتے ہیں۔


en: There are two types of internetworking models.

translation: انٹرنیٹ ورکنگ ماڈلز کی دو قسمیں ہیں۔


en: The first question that comes to our mind is: why do we need a virtual box when we have a default operating system in place?

translation: پہلا سوال جو ہمارے ذہن میں آتا ہے وہ یہ ہے: جب ہمارے پاس پہلے سے ڈیفالٹ آپریٹنگ سسٹم موجود ہے تو ہمیں ورچوئل باکس کی کیا ضرورت ہے؟


en: There is every possibility that while testing a hacking tool we could break a system.

translation: ہر ممکن ہے کہ ہیکنگ ٹول کی جانچ کرتے وقت ہم ایک سسٹم کو توڑ سکیں۔


en: Another great reason for using virtual box is the safety.

translation: ورچوئل باکس استعمال کرنے کی ایک اور بڑی وجہ حفاظت ہے۔


en: You can choose any one of them.

translation: آپ ان میں سے کسی ایک کا انتخاب کر سکتے ہیں۔


en: When you press the “enter” or “return” key, the following lines keep falling on the same line.

translation: جب آپ “enter” یا “return” کی کو دبائیں گے، تو اگلی سطریں ایک ہی لائن میں گرتی رہیں گی۔


en: Inside a function, if you use “four spaces ,” then whatever you write inside that function must fall on the same line.

translation: ایک فنکشن کے اندر، اگر آپ “چار خالی جگہیں” استعمال کرتے ہیں، تو آپ جو کچھ بھی اس فنکشن کے اندر لکھتے ہیں وہ ایک ہی لائن میں گرنا چاہیے۔


en: In any kind of programming, commenting is very important.

translation: کسی بھی قسم کی پروگرامنگ میں، تبصرہ کرنا بہت اہم ہے۔


en: When Python interpreter sees #, it knows that is a comment and it ignores it.

translation: جب پائیتھون مترجم # دیکھتا ہے، تو وہ جانتا ہے کہ یہ ایک تبصرہ ہے اور وہ اسے نظر انداز کرتا ہے۔


en: In Python, the assignment operator is an equal (=) sign.

translation: پائیتھون میں، تفویض کرنے والا آپریٹر مساوی (=) نشان ہے۔


en: This variable “a” is assigned to an integer value.

translation: یہ متغیر “a” ایک عددی قدر کو تفویض کیا گیا ہے۔


en: What is a string? A string is an addition of characters.

translation: سٹرنگ کیا ہے؟ ایک سٹرنگ حروف کا اضافہ ہے۔


en: In Python, everything is object.

translation: پائیتھون میں، ہر چیز ایک شے ہے۔


en: Imagine yourself as an object.

translation: اپنے آپ کو ایک شے کے طور پر تصور کریں۔


en: In Python, a string is also a sequential type and you can iterate through it.

translation: پائیتھون میں، ایک سٹرنگ بھی ایک تسلسل کی قسم ہے اور آپ اس کے ذریعے دہرا سکتے ہیں۔


en: We can insert an integer into the middle of a string.

translation: ہم ایک عدد کو سٹرنگ کے بیچ میں داخل کر سکتے ہیں۔


en: In your coding life you need to use plenty of strings and some of them might have multiple line breaks.

translation: آپ کی کوڈنگ کی زندگی میں آپ کو بہت ساری سٹرنگز استعمال کرنے کی ضرورت ہے اور ان میں سے کچھ میں متعدد لائن بریک ہو سکتے ہیں۔


en: Python has another very strong aggregate type of values: dictionary.

translation: پائیتھون میں اقدار کی ایک اور بہت مضبوط مجموعی قسم ہے: لغت۔


en: It is more like associative array or hash in other languages.

translation: یہ دوسری زبانوں میں ایسوسی ایٹیو ارے یا ہیش کی طرح ہے۔


en: Now we can sort this dictionary in an alphabetical order like this:

translation: اب ہم اس لغت کو اس طرح حروف تہجی کے مطابق ترتیب دے سکتے ہیں:


en: Remember one thing: when you use dict() function, you should not write keys within quotes but string values should be quoted like I did.

translation: ایک بات یاد رکھیں: جب آپ ڈکٹ() فنکشن استعمال کرتے ہیں، تو آپ کو اقتباسات کے اندر کلیدیں نہیں لکھنی چاہئیں لیکن سٹرنگ کی اقدار کو اسی طرح حوالہ دینا چاہیے جیسا کہ میں نے کیا۔


en: Python is an object-oriented language.

translation: پائیتھون ایک آبجیکٹ پر مبنی زبان ہے۔


en: Let us say there is a class or blueprint and from this class or blueprint we can get many types of objects.

translation: آئیے کہتے ہیں کہ ایک کلاس یا بلیو پرنٹ ہے اور اس کلاس یا بلیو پرنٹ سے ہم کئی قسم کی اشیاء حاصل کر سکتے ہیں۔


en: In Python there are two types of conditionals.

translation: پائیتھون میں دو قسم کے مشروط ہیں۔


en: We know that between two values there could be three types of conditions.

translation: ہم جانتے ہیں کہ دو اقدار کے درمیان تین قسم کی شرائط ہو سکتی ہیں۔


en: We find many files there and presently we are interested in the “sources.list” file.

translation: ہم وہاں بہت سی فائلیں پاتے ہیں اور فی الحال ہماری دلچسپی “sources.list” فائل میں ہے۔


en: We can use the “cat” command to read the file but we have something different in mind.

translation: ہم فائل کو پڑھنے کے لیے “cat” کمانڈ استعمال کر سکتے ہیں لیکن ہمارے ذہن میں کچھ اور ہے۔


en: We would like to search some particular word and want to separate them and see them in segregation.

translation: ہم کسی خاص لفظ کو تلاش کرنا چاہیں گے اور انہیں الگ کرنا اور انہیں علیحدگی میں دیکھنا چاہتے ہیں۔


en: If we simply write a command like “cat sources.list”, it will display a long listing of the sources of this Linux system.

translation: اگر ہم صرف “cat sources.list” جیسا کمانڈ لکھتے ہیں، تو یہ اس لینکس سسٹم کے ذرائع کی ایک طویل فہرست دکھائے گا۔


en: But we are interested about searching the word “src” and want to see how many times that word has been used in the “sources.list”.

translation: لیکن ہماری دلچسپی “src” لفظ کو تلاش کرنے میں ہے اور ہم یہ دیکھنا چاہتے ہیں کہ وہ لفظ “sources.list” میں کتنی بار استعمال ہوا ہے۔


en: We can even filter the source file more distinctly.

translation: ہم ماخذ فائل کو مزید واضح طور پر فلٹر بھی کر سکتے ہیں۔


en: We can narrow down our searches more and tell the terminal to find the word “src” only with small letters.

translation: ہم اپنی تلاش کو مزید محدود کر سکتے ہیں اور ٹرمینل کو صرف چھوٹے حروف کے ساتھ “src” لفظ تلاش کرنے کے لیے کہہ سکتے ہیں۔


en: This command literally echoes everything you write on your terminal.

translation: یہ کمانڈ لفظی طور پر ہر وہ چیز گونجتی ہے جو آپ اپنے ٹرمینل پر لکھتے ہیں۔


en: You can even change a text file with this command.

translation: آپ اس کمانڈ سے ٹیکسٹ فائل کو بھی تبدیل کر سکتے ہیں۔


en: We have first echoed some text on our terminal, then we used “>” (greater than sign) to put that text into the file “novel.txt”.

translation: ہم نے پہلے اپنے ٹرمینل پر کچھ متن گونجایا، پھر ہم نے اس متن کو “novel.txt” فائل میں ڈالنے کے لیے “>” (گریٹر دین سائن) استعمال کیا۔


en: Now we will learn how to make directories in Linux.

translation: اب ہم سیکھیں گے کہ لینکس میں ڈائریکٹریز کیسے بنائی جائیں۔


en: It plainly means “make directory.”

translation: اس کا مطلب ہے “ڈائریکٹری بنائیں۔”


en: In this case, if you write that way, Linux terminal understands something else.

translation: اس صورت میں، اگر آپ اس طرح لکھتے ہیں، تو لینکس ٹرمینل کچھ اور سمجھتا ہے۔


en: It comprehends that you want to create two separate directories.

translation: یہ سمجھتا ہے کہ آپ دو الگ الگ ڈائریکٹریز بنانا چاہتے ہیں۔


en: To remove a directory, you must have “root” privilege.

translation: ایک ڈائریکٹری کو ہٹانے کے لیے، آپ کے پاس “root” کا استحقاق ہونا ضروری ہے۔


en: It means you are an administrator or super user of the system.

translation: اس کا مطلب ہے کہ آپ سسٹم کے منتظم یا سپر یوزر ہیں۔


en: In Ubuntu, if we want to be a “root” or “super user,” we issue the command “sudo” first.

translation: اوبنٹو میں، اگر ہم “root” یا “super user” بننا چاہتے ہیں، تو ہم سب سے پہلے “sudo” کمانڈ جاری کرتے ہیں۔


en: The command “-rf” means “do it recursively with force.”

translation: کمانڈ “-rf” کا مطلب ہے “اسے زبردستی کے ساتھ بار بار کریں۔”


en: You have to be very careful about using this command because in Linux, once you have used this command, the file or directory is deleted permanently.

translation: آپ کو اس کمانڈ کو استعمال کرنے کے بارے میں بہت محتاط رہنا ہوگا کیونکہ لینکس میں، ایک بار جب آپ نے اس کمانڈ کو استعمال کیا، تو فائل یا ڈائریکٹری مستقل طور پر حذف ہو جاتی ہے۔


en: In Ethical Hacking, anonymity is a very big deal.

translation: اخلاقی ہیکنگ میں، گمنامی ایک بہت بڑا مسئلہ ہے۔


en: It can return any type of data: string, integer, object—anything.

translation: یہ کسی بھی قسم کا ڈیٹا واپس کر سکتا ہے: سٹرنگ، انٹیجر، آبجیکٹ—کچھ بھی۔


en: Let us return an object. Consider this code:

translation: آئیے ایک آبجیکٹ واپس کریں۔ اس کوڈ پر غور کریں:


en: We have returned range() object and got the value in our main() function.

translation: ہم نے رینج() آبجیکٹ واپس کیا ہے اور اپنی main() فنکشن میں ویلیو حاصل کی ہے۔


en: In Python we can generate functions.

translation: پائیتھون میں ہم فنکشنز بنا سکتے ہیں۔


en: You have probably found that the function RangeFunctions() has a limitation.

translation: آپ نے شاید یہ پایا ہو گا کہ فنکشن RangeFunctions() کی ایک حد ہے۔


en: It stops at 9, although the range is mentioned as 10.

translation: یہ 9 پر رک جاتا ہے، حالانکہ رینج کو 10 بتایا گیا ہے۔


en: Here we have used the “yield” keyword.

translation: یہاں ہم نے “yield” کی ورڈ استعمال کیا ہے۔


en: It is done because we have imagined that the code will progress step-by-step like we play a tape.

translation: یہ اس لیے کیا گیا ہے کیونکہ ہم نے تصور کیا ہے کہ کوڈ ایک ٹیپ چلانے کی طرح قدم بہ قدم آگے بڑھے گا۔


en: You can just start from any point or stop at any point and progress by any step.

translation: آپ کسی بھی نقطہ سے شروع کر سکتے ہیں یا کسی بھی نقطہ پر رک سکتے ہیں اور کسی بھی قدم سے آگے بڑھ سکتے ہیں۔


en: As you have seen, we can set the value of any argument as default.

translation: جیسا کہ آپ نے دیکھا ہے، ہم کسی بھی دلیل کی قدر کو بطور ڈیفالٹ سیٹ کر سکتے ہیں۔


en: Python does not support this.

translation: پائیتھون اس کی حمایت نہیں کرتا۔


en: Can we solve this problem so that we can pass any number of arguments and control it without having any error message?

translation: کیا ہم اس مسئلے کو حل کر سکتے ہیں تاکہ ہم کسی بھی تعداد میں دلائل پاس کر سکیں اور بغیر کسی غلطی کے پیغام کے اسے کنٹرول کر سکیں؟


en: In Python sometimes you need arbitrary number of arguments and you have to name them.

translation: پائیتھون میں بعض اوقات آپ کو دلائل کی من مانی تعداد کی ضرورت ہوتی ہے اور آپ کو ان کا نام رکھنا ہوتا ہے۔


en: In our code, *args or *params mean lists of arguments.

translation: ہمارے کوڈ میں، *args یا *params کا مطلب دلائل کی فہرست ہے۔


en: You can pass any number of arguments through them.

translation: آپ ان کے ذریعے کسی بھی تعداد میں دلائل پاس کر سکتے ہیں۔


en: Sometimes it is important to use named arguments in Python.

translation: کبھی کبھی پائیتھون میں نامزد دلائل استعمال کرنا ضروری ہوتا ہے۔


en: And we get those named arguments in a dictionary format.

translation: اور ہمیں وہ نامزد دلائل ایک لغت کی شکل میں ملتے ہیں۔


en: As it is a dictionary output, it is not ordered.

translation: چونکہ یہ ایک لغت کا آؤٹ پٹ ہے، اس لیے یہ ترتیب وار نہیں ہے۔


en: If you are a complete beginner, you are probably hearing for the first time about “object-oriented programming and class.”

translation: اگر آپ بالکل نئے ہیں، تو آپ شاید پہلی بار “آبجیکٹ اورینٹڈ پروگرامنگ اور کلاس” کے بارے میں سن رہے ہیں۔


en: An object is a representation of a real world entity.

translation: ایک آبجیکٹ ایک حقیقی دنیا کی ہستی کی نمائندگی ہے۔


en: In lists, you can update or add new values quite easily.

translation: لسٹوں میں، آپ آسانی سے نئی قدروں کو اپ ڈیٹ یا شامل کر سکتے ہیں۔


en: Write down the code below and see the output yourself.

translation: نیچے دیا گیا کوڈ لکھیں اور خود ہی آؤٹ پٹ دیکھیں۔


en: The output is like this:

translation: نتیجہ اس طرح ہے:


en: Operating on Tuple and List Object

translation: ٹپل اور لسٹ آبجیکٹ پر کام کرنا


en: Let us open up our terminal and test how tuples and lists work together.

translation: آئیے اپنا ٹرمینل کھولیں اور جانچ کریں کہ ٹپل اور لسٹ ایک ساتھ کیسے کام کرتے ہیں۔


en: The more you spend time with tuples, lists, and dictionaries, the more you learn about Python.

translation: آپ جتنا زیادہ وقت ٹپلز، لسٹس اور ڈکشنری کے ساتھ گزاریں گے، اتنا ہی آپ پائیتھون کے بارے میں سیکھیں گے۔


en: Another key concept of dictionary is "key=>value" pair.

translation: ڈکشنری کا ایک اور اہم تصور "کلید=>قدر" جوڑا ہے۔


en: Database operations in Python are fairly simple.

translation: پائیتھون میں ڈیٹا بیس کے آپریشن کافی آسان ہیں۔


en: You can easily maintain it by creating, retrieving and updating and deleting it.

translation: آپ اسے آسانی سے بنا کر، بازیافت کرکے، اپ ڈیٹ کرکے اور حذف کرکے برقرار رکھ سکتے ہیں۔


en: The basic term is “CRUD .

translation: بنیادی اصطلاح “CRUD” ہے۔


en: Let us start with SQLite3 .

translation: آئیے SQLite3 سے شروع کریں۔


en: There is a large library inside the Python home.

translation: پائیتھون کے گھر کے اندر ایک بڑی لائبریری ہے۔


en: If you run this code, you will see a list of names I just added.

translation: اگر آپ یہ کوڈ چلاتے ہیں، تو آپ ان ناموں کی فہرست دیکھیں گے جو میں نے ابھی شامل کیے ہیں۔


en: But for a big project, it is better to opt for a database like MySQL.

translation: لیکن ایک بڑے پروجیکٹ کے لیے، MySQL جیسا ڈیٹا بیس منتخب کرنا بہتر ہے۔


en: To work with MySQL in Python3 you need to download and install MySQL connector .

translation: پائیتھون 3 میں MySQL کے ساتھ کام کرنے کے لیے آپ کو MySQL کنیکٹر ڈاؤن لوڈ اور انسٹال کرنے کی ضرورت ہے۔


en: In Windows or Linux, installing PHPMyAdmin is very easy.

translation: ونڈوز یا لینکس میں، PHPMyAdmin کو انسٹال کرنا بہت آسان ہے۔


en: Let us assume that we have a database called “python-mysql”.

translation: آئیے فرض کریں کہ ہمارے پاس “python-mysql” نامی ایک ڈیٹا بیس ہے۔


en: It will give us a printout “Connected from a conn object”.

translation: یہ ہمیں “conn آبجیکٹ سے منسلک” کا پرنٹ آؤٹ دے گا۔


en: Now it is time to retrieve the value from the table.

translation: اب وقت آگیا ہے کہ ٹیبل سے ویلیو حاصل کی جائے۔


en: You can fetch all the records.

translation: آپ تمام ریکارڈ حاصل کر سکتے ہیں۔


en: Suppose we have two different set-ups.

translation: فرض کریں کہ ہمارے پاس دو مختلف سیٹ اپ ہیں۔


en: We have a MySQL database and, in addition, we want to create an SQLite connection.

translation: ہمارے پاس ایک MySQL ڈیٹا بیس ہے، اور اس کے علاوہ، ہم ایک SQLite کنکشن بنانا چاہتے ہیں۔


en: To do that we can write two separate classes and set the connection in the constructor part or initialization method.

translation: ایسا کرنے کے لیے، ہم دو الگ الگ کلاسیں لکھ سکتے ہیں اور کنکشن کو کنسٹرکٹر حصے یا ابتدائی طریقہ کار میں سیٹ کر سکتے ہیں۔


en: So that when we create an instance, the connection to the database is set up automatically.

translation: تاکہ جب ہم ایک مثال بنائیں، تو ڈیٹا بیس سے کنکشن خود بخود قائم ہو جائے۔


en: Consider the code:

translation: کوڈ پر غور کریں:


en: We create two instances or objects of MyMySQLConnection() and MySQLiteConnection() classes and put them into two separate variables.

translation: ہم MyMySQLConnection() اور MySQLiteConnection() کلاسوں کی دو مثالیں یا اشیاء بناتے ہیں اور انہیں دو الگ الگ متغیرات میں ڈالتے ہیں۔


en: Connections are being set up and in the output section we see this:

translation: کنکشن قائم کیے جا رہے ہیں اور آؤٹ پٹ سیکشن میں ہم یہ دیکھتے ہیں:


en: But this is an extremely simple example and written badly.

translation: لیکن یہ ایک انتہائی آسان مثال ہے اور اسے بری طرح سے لکھا گیا ہے۔


en: We should develop this code so that each instance of MySQLConnection and SQLiteConnection classes can not only connect to the database but also retrieve data from a table.

translation: ہمیں اس کوڈ کو اس طرح تیار کرنا چاہیے کہ MySQLConnection اور SQLiteConnection کلاسوں کی ہر مثال نہ صرف ڈیٹا بیس سے جڑ سکے بلکہ ایک ٹیبل سے ڈیٹا بھی حاصل کر سکے۔


en: Let us replace our old code with this:

translation: آئیے اپنے پرانے کوڈ کو اس سے بدل دیں:


en: We have connected to each database with the initialization process and then apply one verb, “Retrieve()”, to each object.

translation: ہم نے ابتدائی عمل کے ساتھ ہر ڈیٹا بیس سے رابطہ قائم کیا ہے اور پھر ہر آبجیکٹ پر ایک فعل، “Retrieve()” لاگو کیا ہے۔


en: We have also imported many database modules that you have not learned yet.

translation: ہم نے بہت سے ڈیٹا بیس ماڈیولز بھی درآمد کیے ہیں جو آپ نے ابھی تک نہیں سیکھے ہیں۔


en: You will learn them in due process.

translation: آپ انہیں مناسب عمل میں سیکھیں گے۔


en: But our purpose is served.

translation: لیکن ہمارا مقصد پورا ہو گیا ہے۔


en: We create two separate database objects.

translation: ہم دو الگ الگ ڈیٹا بیس آبجیکٹ بناتے ہیں۔


en: One is a MySQL connection object and another is an SQLite connection object.

translation: ایک MySQL کنکشن آبجیکٹ ہے اور دوسرا SQLite کنکشن آبجیکٹ ہے۔


en: After that, with those objects we are able to retrieve separate data from two different tables.

translation: اس کے بعد، ان اشیاء کے ساتھ ہم دو مختلف ٹیبلز سے الگ الگ ڈیٹا حاصل کرنے کے قابل ہیں۔


en: First look at the output:

translation: پہلے آؤٹ پٹ پر نظر ڈالیں:


en: The output says, the MySQL database “testdb” has a table called “Employee” and there are several rows like name, sex, salary, etc.

translation: آؤٹ پٹ کہتا ہے کہ MySQL ڈیٹا بیس “testdb” میں “Employee” نامی ایک ٹیبل ہے اور اس میں کئی قطاریں ہیں جیسے نام، جنس، تنخواہ وغیرہ۔


en: Second, we have an SQLite3 database “test1” which has a table called “test1” which has many rows that contain few names.

translation: دوسرا، ہمارے پاس ایک SQLite3 ڈیٹا بیس “test1” ہے جس میں “test1” نامی ایک ٹیبل ہے جس میں بہت سی قطاریں ہیں جن میں چند نام ہیں۔


en: Using a proxy, you may want to log into some server.

translation: پراکسی کا استعمال کرتے ہوئے، آپ کسی سرور میں لاگ ان کرنا چاہیں گے۔


en: Once you have typed in your password, it could be hijacked.

translation: ایک بار جب آپ اپنا پاس ورڈ ٹائپ کر لیتے ہیں، تو اسے ہائی جیک کیا جا سکتا ہے۔


en: How can you solve this problem?

translation: آپ اس مسئلے کو کیسے حل کر سکتے ہیں؟


en: There is a term: “VPN.”

translation: ایک اصطلاح ہے: “VPN.”


en: You’ve probably heard of “virtual private network .

translation: آپ نے شاید “ورچوئل پرائیویٹ نیٹ ورک” کے بارے میں سنا ہوگا۔


en: What is that?

translation: وہ کیا ہے؟


en: It is basically a kind of service that you are using for encrypting your traffic.

translation: یہ بنیادی طور پر ایک قسم کی سروس ہے جو آپ اپنے ٹریفک کو انکرپٹ کرنے کے لیے استعمال کر رہے ہیں۔


en: And it is very fast.

translation: اور یہ بہت تیز ہے۔


en: In the future, when you work as a professional, you have to hire a VPN service.

translation: مستقبل میں، جب آپ پیشہ ور کے طور پر کام کریں گے، تو آپ کو VPN سروس حاصل کرنی ہوگی۔


en: It is not very costly.

translation: یہ زیادہ مہنگا نہیں ہے۔


en: For the time being we could do it for free, just for educational purposes.

translation: اس وقت کے لیے ہم اسے مفت میں کر سکتے ہیں، صرف تعلیمی مقاصد کے لیے۔


en: But once you encrypt your traffic through VPN , it is recognizable.

translation: لیکن ایک بار جب آپ VPN کے ذریعے اپنے ٹریفک کو انکرپٹ کر لیتے ہیں، تو یہ قابل شناخت ہے۔


en: What happens if an agency asks the service providers for your data?

translation: کیا ہوتا ہے اگر کوئی ایجنسی سروس فراہم کنندگان سے آپ کا ڈیٹا مانگتی ہے؟


en: Normally, to avoid that you need to be choosy.

translation: عام طور پر، اس سے بچنے کے لیے آپ کو منتخب ہونے کی ضرورت ہے۔


en: You need to hire a service from a certain part of the world where privacy is strictly maintained.

translation: آپ کو دنیا کے ایک خاص حصے سے ایک سروس حاصل کرنے کی ضرورت ہے جہاں رازداری کو سختی سے برقرار رکھا جاتا ہے۔


en: But after saying that and hoping for the best, I’d definitely not recommend you to do your white hat ethical hacking using proxies or VPNs.

translation: لیکن یہ کہنے اور بہترین کی امید کرنے کے بعد، میں یقینی طور پر آپ کو پراکسی یا VPNs کا استعمال کرتے ہوئے اپنے وائٹ ہیٹ ایتھیکل ہیکنگ کرنے کی سفارش نہیں کروں گا۔


en: Basically, you may want to do that for bypassing the firewall setting or that sort of thing.

translation: بنیادی طور پر، آپ فائر وال سیٹنگ یا اس طرح کی چیز کو نظرانداز کرنے کے لیے ایسا کرنا چاہ سکتے ہیں۔


en: Besides, some VPN services don’t allow IP addresses to use their services beyond a range.

translation: اس کے علاوہ، کچھ VPN سروسز IP پتوں کو ایک رینج سے آگے اپنی سروسز استعمال کرنے کی اجازت نہیں دیتیں۔


en: Suppose your IP address belongs outside of that range.

translation: فرض کریں کہ آپ کا IP پتہ اس رینج سے باہر ہے۔


en: But people often use proxies or VPNs—not always for doing something malicious like taking down a server or stealing data.

translation: لیکن لوگ اکثر پراکسی یا VPN استعمال کرتے ہیں—ہمیشہ کوئی بدنیتی پر مبنی کام کرنے کے لیے نہیں جیسے سرور کو بند کرنا یا ڈیٹا چوری کرنا۔


en: The Python version and operating system details are displayed in the first part of the code.

translation: پہلے حصے میں کوڈ کا پہلا حصہ پائیتھون ورژن اور آپریٹنگ سسٹم کی تفصیلات دکھاتا ہے۔


en: The code requests a webpage using the 'urllib.request' module.

translation: یہ کوڈ 'urllib.request' ماڈیول کا استعمال کرتے ہوئے ایک ویب پیج کی درخواست کرتا ہے۔


en: The output varies depending on the operating system, as shown by the 'posix' and 'nt' examples.

translation: آؤٹ پُٹ آپریٹنگ سسٹم کے لحاظ سے مختلف ہوتا ہے، جیسا کہ 'posix' اور 'nt' مثالوں سے ظاہر ہے۔


en: The 'random' and 'datetime' modules are added to the second code example.

translation: دوسرے کوڈ کی مثال میں 'random' اور 'datetime' ماڈیولز شامل کیے گئے ہیں۔


en: Each time the code runs, the 'random' module generates a new number.

translation: ہر بار جب کوڈ چلتا ہے، 'random' ماڈیول ایک نیا نمبر تیار کرتا ہے۔


en: The 'unittest' module helps in identifying errors in the code.

translation: 'unittest' ماڈیول کوڈ میں غلطیوں کی نشاندہی کرنے میں مدد کرتا ہے۔


en: The 'unittest' module is used to test the functionality of the code.

translation: 'unittest' ماڈیول کوڈ کی فعالیت کو جانچنے کے لیے استعمال کیا جاتا ہے۔


en: The example shows how to use 'assertEqual()' method in 'unittest'.

translation: مثال میں دکھایا گیا ہے کہ 'unittest' میں 'assertEqual()' طریقہ کار کو کیسے استعمال کیا جائے۔


en: The output of the 'unittest' module indicates whether the tests pass or fail.

translation: 'unittest' ماڈیول کا آؤٹ پُٹ اس بات کی نشاندہی کرتا ہے کہ آیا ٹیسٹ پاس ہوتے ہیں یا ناکام۔


en: The chapter introduces advanced Python concepts like socket and networking.

translation: یہ باب جدید پائیتھون تصورات جیسے ساکٹ اور نیٹ ورکنگ کا تعارف کراتا ہے۔


en: The code uses the 'socket' module to get the IP address of websites.

translation: یہ کوڈ ویب سائٹس کا آئی پی ایڈریس حاصل کرنے کے لیے 'socket' ماڈیول کا استعمال کرتا ہے۔


en: The chapter discusses the importance of anonymity for ethical hackers.

translation: یہ باب اخلاقی ہیکرز کے لیے گمنامی کی اہمیت پر بحث کرتا ہے۔


en: Nmap is a security scanner used to discover hosts and services on a network.

translation: Nmap ایک سیکیورٹی سکینر ہے جو نیٹ ورک پر میزبانوں اور خدمات کو دریافت کرنے کے لیے استعمال ہوتا ہے۔


en: Nmap sends specially crafted packets to the target host to analyze responses.

translation: Nmap ردعمل کا تجزیہ کرنے کے لیے ہدف کے میزبان کو خاص طور پر تیار کردہ پیکٹ بھیجتا ہے۔


en: The 'nmap' module in Python extends the features of Nmap.

translation: پائیتھون میں 'nmap' ماڈیول Nmap کی خصوصیات کو بڑھاتا ہے۔


en: The script uses the 'nmap' module to scan a target IP address.

translation: اسکرپٹ ایک ہدف کے آئی پی ایڈریس کو اسکین کرنے کے لیے 'nmap' ماڈیول کا استعمال کرتا ہے۔


en: The output of the script shows open ports and their associated services.

translation: اسکرپٹ کا آؤٹ پُٹ کھلے ہوئے پورٹس اور ان سے وابستہ خدمات کو ظاہر کرتا ہے۔


en: Port scanning is a process that tries to connect to a number of sequential ports.

translation: پورٹ اسکیننگ ایک ایسا عمل ہے جو متعدد تسلسل والے پورٹس سے جڑنے کی کوشش کرتا ہے۔


en: The script can be modified to scan a range of ports.

translation: اسکرپٹ کو پورٹس کی ایک رینج کو اسکین کرنے کے لیے تبدیل کیا جا سکتا ہے۔


en: Ethical hackers must protect their anonymity while working.

translation: اخلاقی ہیکرز کو کام کرتے وقت اپنی گمنامی کی حفاظت کرنی چاہیے۔


en: This is Kali Linux virtual machine’s MAC address or local network card address.

translation: یہ کالی لینکس ورچوئل مشین کا میک ایڈریس یا لوکل نیٹ ورک کارڈ کا پتہ ہے۔


en: They are network cards. They could be Ethernet cards, wireless cards, wireless adapters, etcetera.

translation: یہ نیٹ ورک کارڈ ہیں۔ یہ ایتھرنیٹ کارڈ، وائرلیس کارڈ، وائرلیس اڈاپٹر وغیرہ ہو سکتے ہیں۔


en: But this address is extremely important, as it is used to identify you in the vast web world.

translation: لیکن یہ پتہ انتہائی اہم ہے، کیونکہ اس کا استعمال آپ کو وسیع ویب دنیا میں شناخت کرنے کے لیے کیا جاتا ہے۔


en: The first three digits are the symbols that represent the manufacturer.

translation: پہلے تین ہندسے وہ علامتیں ہیں جو مینوفیکچرر کی نمائندگی کرتے ہیں۔


en: We can check it out here also by issuing this command: root@kali:# macchanger -s eth0

translation: ہم اسے یہاں اس کمانڈ کو جاری کرکے بھی چیک کر سکتے ہیں: root@kali:# macchanger -s eth0


en: As you see, it shows two MAC address—one is current and the other is permanent.

translation: جیسا کہ آپ دیکھ سکتے ہیں، یہ دو میک ایڈریس دکھاتا ہے—ایک موجودہ ہے اور دوسرا مستقل ہے۔


en: It’s because the command “ifconfig ” will only show the current MAC address.

translation: اس کی وجہ یہ ہے کہ “ifconfig” کمانڈ صرف موجودہ میک ایڈریس دکھائے گا۔


en: It won’t show the permanent MAC address.

translation: یہ مستقل میک ایڈریس نہیں دکھائے گا۔


en: Now we’d like to change our MAC address.

translation: اب ہم اپنا میک ایڈریس تبدیل کرنا چاہیں گے۔


en: Let us issue this command: root@kali:# macchanger –h

translation: آئیے یہ کمانڈ جاری کریں: root@kali:# macchanger –h


en: And it will produce an output like this : GNU MAC Changer Usage:

translation: اور یہ اس طرح کا آؤٹ پٹ تیار کرے گا: GNU MAC Changer Usage:


en: The three red-colored lines are important.

translation: تین سرخ رنگ کی لکیریں اہم ہیں۔


en: It is explicitly defined what they mean.

translation: اس میں واضح طور پر بیان کیا گیا ہے کہ ان کا کیا مطلب ہے۔


en: The green colored line is also important.

translation: سبز رنگ کی لکیر بھی اہم ہے۔


en: In this case, there is every possibility of losing your anonymity.

translation: اس صورت میں، آپ کی گمنامی کھونے کا ہر امکان موجود ہے۔


en: The first three sets belong to the net card manufacturer and, since that has not been changed, you can be identified.

translation: پہلے تین سیٹ نیٹ کارڈ بنانے والے سے تعلق رکھتے ہیں اور، چونکہ وہ تبدیل نہیں ہوئے ہیں، اس لیے آپ کی شناخت ہو سکتی ہے۔


en: So far, the best option available for us is the green colored line— -r, -- random Set fully random MAC—where it is clearly said that you can set fully random MAC.

translation: اب تک، ہمارے لیے دستیاب بہترین آپشن سبز رنگ کی لکیر ہے— -r, -- random مکمل طور پر بے ترتیب MAC سیٹ کریں—جہاں یہ واضح طور پر کہا گیا ہے کہ آپ مکمل طور پر بے ترتیب MAC سیٹ کر سکتے ہیں۔


en: That is, the six sets are completely random—which we prefer.

translation: یعنی، چھ سیٹ مکمل طور پر بے ترتیب ہیں—جسے ہم ترجیح دیتے ہیں۔


en: We can have a list of all vendors with a simple command: l.

translation: ہم ایک سادہ کمانڈ کے ساتھ تمام وینڈرز کی فہرست حاصل کر سکتے ہیں: l.


en: Ethical hackers sometime use that trick.

translation: اخلاقی ہیکرز بعض اوقات اس چال کا استعمال کرتے ہیں۔