The program executes the outside print() function first.

প্রোগ্রামটি প্রথমে বাইরের print() ফাংশনটি কার্যকর করে।


Indentation plays a major role in Python.

পাইথনে ইন্ডেন্টেশন একটি প্রধান ভূমিকা পালন করে।


Every block of code has its own indentation.

প্রতিটি কোড ব্লকের নিজস্ব ইন্ডেন্টেশন থাকে।


Commenting is very important in programming.

প্রোগ্রামিংয়ে মন্তব্য করা খুবই গুরুত্বপূর্ণ।


The assignment operator in Python is the equal (=) sign.

পাইথনে অ্যাসাইনমেন্ট অপারেটর হল সমান (=) চিহ্ন।


একটি স্ট্রিং হল অক্ষরের একটি ক্রম।


Python is an object-oriented programming language.

পাইথন একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা।


Variables, functions, and even code are objects.

ভেরিয়েবল, ফাংশন এবং এমনকি কোডও অবজেক্ট।


Every object has an ID, type, and value.

প্রতিটি বস্তুর একটি আইডি, প্রকার এবং মান থাকে।


অপরিবর্তনীয় বস্তুগুলির মান পরিবর্তন করা যায় না।


Numbers, strings, and tuples are immutable.

সংখ্যা, স্ট্রিং এবং টিউপলগুলি অপরিবর্তনীয়।


তালিকা এবং অভিধান পরিবর্তনযোগ্য।


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

আমরা একটি স্ট্রিংয়ের মাঝে একটি পূর্ণসংখ্যা সন্নিবেশ করতে পারি।


In Python 3, we treat string as an object.

পাইথন ৩-এ, আমরা স্ট্রিংকে একটি বস্তু হিসাবে বিবেচনা করি।


The difference is in the latest version of Python.

পার্থক্যটি হল পাইথনের সর্বশেষ সংস্করণে।


Python has many sequential types (lists of things).

পাইথনের অনেক ক্রমিক প্রকার রয়েছে (জিনিসের তালিকা)।


A string is also a sequential type and you can iterate through it.

একটি স্ট্রিংও একটি ক্রমিক প্রকার এবং আপনি এটির মাধ্যমে পুনরাবৃত্তি করতে পারেন।


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

পাইথনের মানগুলির আরেকটি খুব শক্তিশালী সমষ্টিগত প্রকার রয়েছে: অভিধান।


A dictionary object needs to be changed for programming purposes.

প্রোগ্রামিংয়ের উদ্দেশ্যে একটি অভিধান বস্তু পরিবর্তন করতে হবে।


In Python there are two types of conditionals: conditional executions and conditional values.

পাইথনে দুই ধরনের শর্তসাপেক্ষতা রয়েছে: শর্তসাপেক্ষ কার্যকরকরণ এবং শর্তসাপেক্ষ মান।


The program's output will be displayed after execution.

প্রোগ্রামটি কার্যকর করার পরে এর ফলাফল প্রদর্শিত হবে।


The main function is the starting point of the program.

প্রধান ফাংশনটি প্রোগ্রামের শুরু বিন্দু।


Conditional statements allow the program to make decisions.

শর্তসাপেক্ষ বিবৃতিগুলি প্রোগ্রামকে সিদ্ধান্ত নিতে দেয়।


If 'a' is less than 'b', then print 'a is less than b'.

'a' যদি 'b'-এর চেয়ে ছোট হয়, তাহলে 'a is less than b' প্রিন্ট করুন।


The output will change based on the conditional values.

শর্তসাপেক্ষ মানের উপর ভিত্তি করে আউটপুট পরিবর্তিত হবে।


Loops are essential for repetitive tasks in programming.

প্রোগ্রামিংয়ে পুনরাবৃত্তিমূলক কাজের জন্য লুপ অপরিহার্য।


The 'while' loop continues as long as the condition is true.

'while' লুপটি ততক্ষণ চলতে থাকে যতক্ষণ না শর্তটি সত্য হয়।


Be careful, an infinite loop can consume your memory.

সাবধান, একটি অসীম লুপ আপনার মেমরি গ্রাস করতে পারে।


The 'for' loop is commonly used for iterating through objects.

'for' লুপ সাধারণত অবজেক্টগুলির মধ্যে পুনরাবৃত্তির জন্য ব্যবহৃত হয়।


The Fibonacci sequence is a classic example of a loop.

ফিবোনাচি ক্রম একটি লুপের ক্লাসিক উদাহরণ।


Regular expressions are powerful for pattern matching.

নিয়মিত অভিব্যক্তি প্যাটার্ন ম্যাচিংয়ের জন্য শক্তিশালী।


The 're' module is used for regular expression operations.

're' মডিউলটি নিয়মিত অভিব্যক্তি অপারেশনের জন্য ব্যবহৃত হয়।


You can search and replace words using regular expressions.

আপনি নিয়মিত অভিব্যক্তি ব্যবহার করে শব্দ অনুসন্ধান এবং প্রতিস্থাপন করতে পারেন।


The 'sub' method replaces matched patterns.

'sub' পদ্ধতিটি মিলে যাওয়া প্যাটার্নগুলিকে প্রতিস্থাপন করে।


File handling often involves the 'try' and 'except' blocks.

ফাইল হ্যান্ডলিং প্রায়শই 'try' এবং 'except' ব্লকগুলির সাথে জড়িত।


Exceptions are errors that occur during program execution.

ব্যতিক্রম হল সেই ত্রুটি যা প্রোগ্রাম কার্যকর করার সময় ঘটে।


The 'FileNotFoundError' is a common exception.

'FileNotFoundError' একটি সাধারণ ব্যতিক্রম।


Functions promote code reusability and organization.

ফাংশন কোড পুনরায় ব্যবহারযোগ্যতা এবং সংগঠনকে উৎসাহিত করে।


Functions can accept parameters and return values.

ফাংশন প্যারামিটার গ্রহণ করতে এবং মান ফেরত দিতে পারে।


Default values can be assigned to function parameters.

ডিফল্ট মানগুলি ফাংশন প্যারামিটারগুলিতে নির্ধারণ করা যেতে পারে।


The author discusses the importance of ethical hacking.

লেখক নৈতিক হ্যাকিংয়ের গুরুত্ব নিয়ে আলোচনা করেছেন।


Ethical hacking is not associated with illegal activities.

নৈতিক হ্যাকিং অবৈধ কার্যকলাপের সাথে জড়িত নয়।


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

এই বইটি তাদের জন্য যারা নৈতিক হ্যাকিং শিখতে চান।


The author uses Ubuntu Linux as his default operating system.

লেখক তার ডিফল্ট অপারেটিং সিস্টেম হিসাবে উবুন্টু লিনাক্স ব্যবহার করেন।


You can experiment on virtual machines without affecting your main system.

আপনার মূল সিস্টেমে কোনো প্রভাব না ফেলে ভার্চুয়াল মেশিনে পরীক্ষা করতে পারেন।


Ethical hackers use the same tools as malicious hackers, but with different intentions.

নৈতিক হ্যাকাররা ক্ষতিকারক হ্যাকারদের মতোই সরঞ্জাম ব্যবহার করে, তবে ভিন্ন উদ্দেশ্যে।


Security consists of four key components: availability, integrity, authenticity, and confidentiality.

নিরাপত্তা চারটি মূল উপাদান নিয়ে গঠিত: উপলব্ধতা, অখণ্ডতা, সত্যতা এবং গোপনীয়তা।


A hacker might use a Denial of Service (DoS) attack to block data availability.

একজন হ্যাকার ডেটা উপলব্ধতা ব্লক করতে একটি 'ডিনায়াল অফ সার্ভিস' (DoS) আক্রমণ ব্যবহার করতে পারে।


Integrity of data should not be compromised at any cost.

ডেটার অখণ্ডতা কোনো মূল্যে আপোস করা উচিত নয়।


Authentication attacks can involve MAC address spoofing.

প্রমাণীকরণ আক্রমণে MAC ঠিকানা স্পুফিং জড়িত থাকতে পারে।


Data travels in clear text across the trusted network.

ডেটা বিশ্বস্ত নেটওয়ার্কের মাধ্যমে স্পষ্ট পাঠ্যে ভ্রমণ করে।


The book covers the legal side of hacking.

বইটিতে হ্যাকিংয়ের আইনি দিক নিয়ে আলোচনা করা হয়েছে।


Installing a virtual machine is a very important step.

একটি ভার্চুয়াল মেশিন ইনস্টল করা একটি খুবই গুরুত্বপূর্ণ পদক্ষেপ।


পাইথন শিখতে খুবই সহজ একটি ভাষা।


A basic knowledge of networking is essential for ethical hacking.

নৈতিক হ্যাকিং শেখার জন্য নেটওয়ার্কিং সম্পর্কে প্রাথমিক জ্ঞান অপরিহার্য।


Data travels through many layers in a network.

একটি নেটওয়ার্কে ডেটা অনেক স্তরের মধ্য দিয়ে ভ্রমণ করে।


ওএসআই মডেলের সাতটি স্তর রয়েছে।


The application layer is the top layer in the OSI model.

অ্যাপ্লিকেশন স্তরটি ওএসআই মডেলের উপরের স্তর।


Understanding the different layers is crucial for ethical hackers.

বিভিন্ন স্তর বোঝা নৈতিক হ্যাকারদের জন্য অত্যন্ত গুরুত্বপূর্ণ।


The book provides a detailed explanation of ethical hacking concepts.

বইটিতে নৈতিক হ্যাকিং ধারণাগুলির বিস্তারিত ব্যাখ্যা দেওয়া হয়েছে।


The user requests the data and ultimately retrieves the data.

ব্যবহারকারী ডেটার জন্য অনুরোধ করে এবং অবশেষে ডেটা পুনরুদ্ধার করে।


ডেটা ফরম্যাট করা হয় এবং এনক্রিপ্ট করা হয়।


This layer manages end-to-end communication.

এই স্তরটি শেষ থেকে শেষ পর্যন্ত যোগাযোগ পরিচালনা করে।


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

ধরুন আপনি একটি পাসওয়ার্ড টাইপ করেন এবং আপনার সামাজিক মিডিয়া অ্যাকাউন্টে লগ ইন করেন।


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

এই স্তরটি শেষ থেকে শেষ পর্যন্ত (ব্যবহারকারী থেকে সার্ভার) যোগাযোগ বজায় রাখে যাতে আপনি আপনার পৃষ্ঠায় লগ ইন থাকতে পারেন।


First, it adds source and destination port numbers.

প্রথমত, এটি উৎস এবং গন্তব্য পোর্ট নম্বর যোগ করে।


It adds source and destination IP addresses.

এটি উৎস এবং গন্তব্য আইপি ঠিকানা যোগ করে।


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

এটি আরও নিশ্চিত করে যে আপনার অনুরোধ গন্তব্যে পৌঁছানোর সেরা পথ খুঁজে পায়।


It checks frame by frame whether the source requests reach the right destination.

এটি ফ্রেম বাই ফ্রেম পরীক্ষা করে যে উৎস অনুরোধগুলি সঠিক গন্তব্যে পৌঁছেছে কিনা।


Routers communicate with other networks like the Internet.

রাউটারগুলি ইন্টারনেটের মতো অন্যান্য নেটওয়ার্কের সাথে যোগাযোগ করে।


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

ইন্টারনেটওয়ার্কিং মডেলগুলি বিভিন্ন ডিভাইসের মধ্যে আন্তঃক্রিয়াশীলতাকে উৎসাহিত করে, ডেটা যোগাযোগ বর্ণনা করার জন্য একটি রেফারেন্স প্রদান করে।


There are two types of internetworking models.

ইন্টারনেটওয়ার্কিং মডেল দুই প্রকার।


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?

আমাদের মনে প্রথম যে প্রশ্ন আসে তা হল: আমাদের ডিফল্ট অপারেটিং সিস্টেম থাকা সত্ত্বেও কেন একটি ভার্চুয়াল বক্সের প্রয়োজন?


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

এমন সম্ভাবনা রয়েছে যে একটি হ্যাকিং সরঞ্জাম পরীক্ষা করার সময় আমরা একটি সিস্টেম ভেঙে ফেলতে পারি।


Another great reason for using virtual box is the safety.

ভার্চুয়াল বক্স ব্যবহারের আরেকটি বড় কারণ হল নিরাপত্তা।


আপনি তাদের মধ্যে যেকোনো একটি বেছে নিতে পারেন।


ভার্চুয়াল বক্স ইনস্টল করা খুবই সহজ।


First, you need to know about your operating system itself.

প্রথমত, আপনার নিজের অপারেটিং সিস্টেম সম্পর্কে জানতে হবে।


Once the Virtual Box has been installed on your machine, you need not worry about installing several operating systems on it.

একবার আপনার মেশিনে ভার্চুয়াল বক্স ইনস্টল হয়ে গেলে, আপনাকে এতে একাধিক অপারেটিং সিস্টেম ইনস্টল করার বিষয়ে চিন্তা করতে হবে না।


The image above is showing the full screen view of Kali Linux.

উপরের চিত্রটি কালী লিনাক্সের ফুল স্ক্রিন ভিউ দেখাচ্ছে।


Let us first see what we have in our root directory.

আসুন, প্রথমে দেখি আমাদের মূল ডিরেক্টরিতে কি আছে।


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

আমরা সেখানে অনেক ফাইল খুঁজে পাই এবং বর্তমানে আমরা “sources.list” ফাইলটিতে আগ্রহী।


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

আমরা ফাইলটি পড়তে “cat” কমান্ড ব্যবহার করতে পারি, তবে আমাদের মনে অন্য কিছু আছে।


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

আমরা কিছু নির্দিষ্ট শব্দ অনুসন্ধান করতে চাই এবং সেগুলিকে আলাদা করতে চাই ও পৃথকভাবে দেখতে চাই।


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

যদি আমরা কেবল “cat sources.list” এর মতো একটি কমান্ড লিখি, তবে এটি এই লিনাক্স সিস্টেমের উৎসগুলির একটি দীর্ঘ তালিকা প্রদর্শন করবে।


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”.

কিন্তু আমরা “src” শব্দটি অনুসন্ধান করতে আগ্রহী এবং দেখতে চাই “sources.list”-এ শব্দটি কতবার ব্যবহৃত হয়েছে।


We can even filter the source file more distinctly.

আমরা এমনকি সোর্স ফাইলটিকে আরও স্পষ্টভাবে ফিল্টার করতে পারি।


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

আমরা আমাদের অনুসন্ধানকে আরও সংকুচিত করতে পারি এবং টার্মিনালকে ছোট হাতের অক্ষর দিয়ে শুধুমাত্র “src” শব্দটি খুঁজে বের করতে বলতে পারি।


আরেকটি গুরুত্বপূর্ণ কমান্ড হল “echo”।


This command literally echoes everything you write on your terminal.

এই কমান্ডটি আক্ষরিক অর্থে আপনি আপনার টার্মিনালে যা লেখেন, তাই প্রতিধ্বনিত করে।


You can also do something more with this command.

আপনি এই কমান্ডের সাথে আরও কিছু করতে পারেন।


You can even change a text file with this command.

আপনি এই কমান্ডের মাধ্যমে একটি টেক্সট ফাইলও পরিবর্তন করতে পারেন।


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

আমরা প্রথমে আমাদের টার্মিনালে কিছু টেক্সট প্রতিধ্বনিত করেছি, তারপর সেই টেক্সটটিকে “novel.txt” ফাইলে রাখতে “>” (গ্রেটার দেন চিহ্ন) ব্যবহার করেছি।


Now we will learn how to make directories in Linux.

এখন আমরা শিখব কিভাবে লিনাক্সে ডিরেক্টরি তৈরি করতে হয়।


There is a very useful command: “mkdir”.

এখানে একটি খুব দরকারী কমান্ড আছে: “mkdir”।


এর অর্থ হল “ডিরেক্টরি তৈরি করুন।”


Let us make a directory named after this project: “Ethical Hacking.”

আসুন, এই প্রকল্পের নামে একটি ডিরেক্টরি তৈরি করি: “এথিক্যাল হ্যাকিং।”


In Ethical Hacking, anonymity is a very big deal.

এথিক্যাল হ্যাকিং-এ, বেনামী থাকাটা খুবই গুরুত্বপূর্ণ।


In the next chapter we learn it in great detail.

পরের অধ্যায়ে আমরা এটি বিস্তারিতভাবে শিখব।


Before that you need to understand that, in the process of being anonymous, it is good to be any user rather than the root user.

তার আগে আপনাকে বুঝতে হবে, বেনামী হওয়ার প্রক্রিয়ায়, রুট ব্যবহারকারীর পরিবর্তে অন্য কোনো ব্যবহারকারী হওয়া ভালো।


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

এটি যেকোনো ধরনের ডেটা ফেরত দিতে পারে: স্ট্রিং, ইনটিজার, অবজেক্ট—যে কোনও কিছু।


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

আমরা range() অবজেক্টটি ফেরত দিয়েছি এবং আমাদের main() ফাংশনে মানটি পেয়েছি।


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

আপনি সম্ভবত খুঁজে পেয়েছেন যে RangeFunctions() ফাংশনটির একটি সীমাবদ্ধতা রয়েছে।


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

এটি ৯-এ থেমে যায়, যদিও রেঞ্জটিকে ১০ হিসাবে উল্লেখ করা হয়েছে।


এখানে আমরা “yield” কীওয়ার্ডটি ব্যবহার করেছি।


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

এটি করা হয়েছে কারণ আমরা কল্পনা করেছি যে কোডটি টেপ চালানোর মতো, ধাপে ধাপে এগিয়ে যাবে।


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

আপনি যেকোনো বিন্দু থেকে শুরু করতে পারেন বা যেকোনো বিন্দুতে থামতে পারেন এবং যেকোনো ধাপে এগিয়ে যেতে পারেন।


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

যেমনটা আপনি দেখেছেন, আমরা যেকোনো আর্গুমেন্টের মান ডিফল্ট হিসেবে সেট করতে পারি।


পাইথন এটি সমর্থন করে না।


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

আমরা কি এই সমস্যার সমাধান করতে পারি যাতে আমরা যেকোনো সংখ্যক আর্গুমেন্ট পাস করতে পারি এবং কোনো ত্রুটি বার্তা ছাড়াই এটি নিয়ন্ত্রণ করতে পারি?


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

পাইথনে, মাঝে মাঝে আপনার ইচ্ছামতো সংখ্যক আর্গুমেন্টের প্রয়োজন হয় এবং সেগুলোর নাম দিতে হয়।


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

আমাদের কোডে, *args বা *params মানে আর্গুমেন্টের তালিকা।


You can pass any number of arguments through them.

আপনি তাদের মাধ্যমে যেকোনো সংখ্যক আর্গুমেন্ট পাস করতে পারেন।


The latter part is obviously a tuple and you can iterate through it.

পরের অংশটি স্পষ্টতই একটি tuple এবং আপনি এটির মাধ্যমে পুনরাবৃত্তি করতে পারেন।


Sometimes it is important to use named arguments in Python.

কখনও কখনও পাইথনে নামযুক্ত আর্গুমেন্ট ব্যবহার করা গুরুত্বপূর্ণ।


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

যেহেতু এটি একটি ডিকশনারি আউটপুট, তাই এটি সাজানো নয়।


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

আপনি যদি একেবারে নতুন হন, তবে সম্ভবত আপনি প্রথমবার “অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এবং ক্লাস” সম্পর্কে শুনছেন।


An object is a representation of a real world entity.

একটি অবজেক্ট হল বাস্তব বিশ্বের সত্তার একটি প্রতিনিধিত্ব।


If you get a flat tire does the engine stop?

যদি আপনার টায়ার পাংচার হয়, তবে কি ইঞ্জিন বন্ধ হয়ে যায়?


আমাদের লক্ষ্য সহজ।


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

তালিকাগুলিতে, আপনি খুব সহজে নতুন মান আপডেট বা যোগ করতে পারেন।


Write down the code below and see the output yourself.

নীচের কোডটি লিখুন এবং নিজে ফলাফল দেখুন।


আউটপুটটা এইরকম:


টাপল এবং লিস্ট অবজেক্টের উপর কাজ করা


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

আসুন আমাদের টার্মিনাল খুলি এবং পরীক্ষা করি কিভাবে টাপল এবং লিস্ট একসাথে কাজ করে।


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

আপনি টাপল, লিস্ট এবং ডিকশনারির সাথে যত বেশি সময় কাটাবেন, পাইথন সম্পর্কে তত বেশি শিখবেন।


Database operations in Python are fairly simple.

পাইথনে ডাটাবেস অপারেশনগুলি বেশ সহজ।


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

আপনি এটিকে তৈরি, পুনরুদ্ধার, আপডেট এবং মুছে ফেলার মাধ্যমে সহজেই রক্ষণাবেক্ষণ করতে পারেন।


মূল শব্দ হল “CRUD”।


With any database you generally perform these actions.

সাধারণত, আপনি যেকোনো ডাটাবেসের সাথে এই কাজগুলি করেন।


আসুন SQLite3 দিয়ে শুরু করি।


বড় প্রকল্পের জন্য MySQL


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

তবে একটি বড় প্রকল্পের জন্য, MySQL-এর মতো একটি ডাটাবেস বেছে নেওয়া ভাল।


In Windows or Linux, installing PHPMyAdmin is very easy.

উইন্ডোজ বা লিনাক্সে, PHPMyAdmin ইনস্টল করা খুবই সহজ।


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

ধরুন আমাদের কাছে “python-mysql” নামে একটি ডাটাবেস আছে।


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

এটি আমাদের একটি প্রিন্টআউট দেবে “একটি conn অবজেক্ট থেকে কানেক্টেড”।


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

এখন টেবিল থেকে মান পুনরুদ্ধার করার সময় এসেছে।


আপনি সমস্ত রেকর্ড আনতে পারেন।


The methods are “fetchmany()” and “fetchall()”.

পদ্ধতিগুলি হল “fetchmany()” এবং “fetchall()”।


In Python when you leave the shell or terminal or Python interpreter, the script is lost.

পাইথনে যখন আপনি শেল বা টার্মিনাল বা পাইথন ইন্টারপ্রেটার ত্যাগ করেন, তখন স্ক্রিপ্টটি হারিয়ে যায়।


ধরুন, আমাদের দুটি ভিন্ন ব্যবস্থা রয়েছে।


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

আমাদের একটি MySQL ডাটাবেস আছে এবং এছাড়াও, আমরা একটি SQLite সংযোগ তৈরি করতে চাই।


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

এটি করতে, আমরা দুটি পৃথক ক্লাস লিখতে পারি এবং সংযোগটি কনস্ট্রাক্টর অংশে বা ইনিশিয়ালাইজেশন পদ্ধতিতে সেট করতে পারি।


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

যাতে আমরা একটি উদাহরণ তৈরি করার সময়, ডাটাবেসের সাথে সংযোগ স্বয়ংক্রিয়ভাবে সেট আপ হয়।


কোডটি বিবেচনা করুন:


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

আমরা MyMySQLConnection() এবং MySQLiteConnection() ক্লাসের দুটি উদাহরণ বা অবজেক্ট তৈরি করি এবং সেগুলিকে দুটি পৃথক ভেরিয়েবলে রাখি।


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

সংযোগগুলি স্থাপন করা হচ্ছে এবং আউটপুট বিভাগে আমরা এটি দেখি:


But this is an extremely simple example and written badly.

কিন্তু এটি একটি অত্যন্ত সাধারণ উদাহরণ এবং খারাপভাবে লেখা হয়েছে।


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.

আমাদের এই কোডটি এমনভাবে তৈরি করা উচিত যাতে MySQLConnection এবং SQLiteConnection ক্লাসের প্রতিটি উদাহরণ শুধুমাত্র ডাটাবেসের সাথে সংযোগ স্থাপন করতে না পারে, বরং একটি টেবিল থেকে ডেটা পুনরুদ্ধার করতে পারে।


আসুন আমাদের পুরনো কোডটি এটির সাথে প্রতিস্থাপন করি:


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

আমরা প্রতিটি ডাটাবেসের সাথে ইনিশিয়ালাইজেশন প্রক্রিয়া ব্যবহার করে সংযোগ স্থাপন করেছি এবং তারপরে প্রতিটি অবজেক্টের জন্য একটি ক্রিয়া, “Retrieve()”, প্রয়োগ করি।


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

আমরা অনেক ডাটাবেস মডিউলও আমদানি করেছি যা আপনি এখনও শেখেননি।


আপনি উপযুক্ত প্রক্রিয়ার মাধ্যমে সেগুলি শিখবেন।


কিন্তু আমাদের উদ্দেশ্য সফল হয়েছে।


We create two separate database objects.

আমরা দুটি পৃথক ডাটাবেস অবজেক্ট তৈরি করি।


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

একটি হল একটি MySQL সংযোগ অবজেক্ট এবং অন্যটি হল একটি SQLite সংযোগ অবজেক্ট।


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

এর পরে, সেই অবজেক্টগুলির সাথে আমরা দুটি ভিন্ন টেবিল থেকে আলাদা ডেটা পুনরুদ্ধার করতে সক্ষম।


প্রথমে আউটপুটটি দেখুন:


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

আউটপুট বলছে, MySQL ডাটাবেস “testdb”-এর “Employee” নামে একটি টেবিল আছে এবং সেখানে নাম, লিঙ্গ, বেতন ইত্যাদির মতো বেশ কয়েকটি সারি রয়েছে।


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

দ্বিতীয়ত, আমাদের একটি SQLite3 ডাটাবেস “test1” আছে যার “test1” নামে একটি টেবিল আছে যাতে কয়েকটি নাম রয়েছে এমন অনেক সারি রয়েছে।


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

প্রক্সি ব্যবহার করে, আপনি সম্ভবত কোনো সার্ভারে লগ ইন করতে চাইবেন।


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

আপনার পাসওয়ার্ড টাইপ করার পরে, এটি হাইজ্যাক হতে পারে।


আপনি কীভাবে এই সমস্যার সমাধান করতে পারেন?


একটি শব্দ আছে: “VPN।”


You’ve probably heard of “virtual private network ."

আপনি সম্ভবত “ভার্চুয়াল প্রাইভেট নেটওয়ার্ক” সম্পর্কে শুনেছেন।


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

এটি মূলত এক ধরণের পরিষেবা যা আপনি আপনার ট্র্যাফিক এনক্রিপ্ট করার জন্য ব্যবহার করছেন।


এবং এটি খুব দ্রুত।


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

ভবিষ্যতে, যখন আপনি একজন পেশাদার হিসাবে কাজ করবেন, তখন আপনাকে একটি VPN পরিষেবা ভাড়া করতে হবে।


এটি খুব ব্যয়বহুল নয়।


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

এই মুহূর্তে আমরা এটি বিনামূল্যে করতে পারি, শুধুমাত্র শিক্ষাগত উদ্দেশ্যে।


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

কিন্তু একবার আপনি VPN-এর মাধ্যমে আপনার ট্র্যাফিক এনক্রিপ্ট করলে, এটি সনাক্তযোগ্য।


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

যদি কোনো সংস্থা আপনার ডেটার জন্য পরিষেবা প্রদানকারীদের জিজ্ঞাসা করে তবে কী হবে?


Normally, to avoid that you need to be choosy.

সাধারণত, এটি এড়াতে আপনাকে বেছে নিতে হবে।


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

আপনাকে বিশ্বের এমন একটি অংশ থেকে একটি পরিষেবা ভাড়া করতে হবে যেখানে গোপনীয়তা কঠোরভাবে বজায় রাখা হয়।


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.

তবে এটি বলার পরে এবং ভালোর আশা করে, আমি অবশ্যই আপনাকে প্রক্সি বা VPN ব্যবহার করে আপনার হোয়াইট হ্যাট নৈতিক হ্যাকিং করতে বলব না।


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

মূলত, আপনি সম্ভবত ফায়ারওয়াল সেটিং বা সেই ধরণের জিনিস বাইপাস করার জন্য এটি করতে চাইবেন।


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

এছাড়াও, কিছু VPN পরিষেবা তাদের পরিষেবাগুলি একটি নির্দিষ্ট সীমার বাইরে IP ঠিকানা ব্যবহার করার অনুমতি দেয় না।


Suppose your IP address belongs outside of that range.

ধরুন আপনার আইপি ঠিকানা সেই সীমার বাইরে।


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

তবে লোকেরা প্রায়শই প্রক্সি বা VPN ব্যবহার করে—সবসময় সার্ভার বন্ধ করা বা ডেটা চুরি করার মতো খারাপ কিছু করার জন্য নয়।


The Python script checks the Python version and operating system details.

পাইথন স্ক্রিপ্টটি পাইথন সংস্করণ এবং অপারেটিং সিস্টেমের বিবরণ পরীক্ষা করে।


The output shows the Python version as 3.4.3 and the operating system as posix.

আউটপুটটি পাইথনের সংস্করণ ৩.৪.৩ এবং অপারেটিং সিস্টেমটিকে পসিক্স হিসাবে দেখায়।


The script then fetches and displays a webpage from a website.

স্ক্রিপ্টটি তারপর একটি ওয়েবসাইট থেকে একটি ওয়েবপেজ সংগ্রহ করে এবং প্রদর্শন করে।


The example code uses modules like 'sys', 'os', and 'urllib.request'.

উদাহরণস্বরূপ কোডটি 'sys', 'os', এবং 'urllib.request'-এর মতো মডিউল ব্যবহার করে।


The output varies depending on the operating system, showing 'posix' on Linux and 'nt' on Windows.

আউটপুট অপারেটিং সিস্টেমের উপর নির্ভর করে পরিবর্তিত হয়, লিনাক্সে 'posix' এবং উইন্ডোজে 'nt' দেখায়।


The 'random' and 'datetime' modules are also demonstrated in the code.

কোডে 'random' এবং 'datetime' মডিউলগুলিও প্রদর্শিত হয়।


The 'random' module generates random numbers, and the 'datetime' module displays the current date and time.

'random' মডিউলটি এলোমেলো সংখ্যা তৈরি করে এবং 'datetime' মডিউলটি বর্তমান তারিখ এবং সময় প্রদর্শন করে।


The text discusses the use of the 'unittest' module for testing Python code.

টেক্সটটি পাইথন কোড পরীক্ষার জন্য 'unittest' মডিউলের ব্যবহার নিয়ে আলোচনা করে।


The 'unittest' module helps in identifying and catching errors in the code.

'unittest' মডিউল কোডের ত্রুটি সনাক্তকরণ এবং ধরতে সাহায্য করে।


The example shows how to create unit tests to check the functionality of the code.

উদাহরণটি দেখায় কীভাবে কোডের কার্যকারিতা পরীক্ষা করার জন্য ইউনিট টেস্ট তৈরি করতে হয়।


The code includes methods like 'PyVer', 'PyTime', 'test_Pyvar', and 'test_Main'.

কোডে 'PyVer', 'PyTime', 'test_Pyvar', এবং 'test_Main'-এর মতো পদ্ধতি অন্তর্ভুক্ত রয়েছে।


The 'assertEqual' method from the 'unittest' module is used for comparing results.

'unittest' মডিউলের 'assertEqual' পদ্ধতি ফলাফল তুলনা করার জন্য ব্যবহৃত হয়।


The output of the unit tests indicates whether the code passes or fails the tests.

ইউনিট পরীক্ষার আউটপুট নির্দেশ করে যে কোডটি পরীক্ষাগুলি পাস করে নাকি ব্যর্থ হয়।


The chapter introduces socket and networking concepts in Python.

অধ্যায়টি পাইথনে সকেট এবং নেটওয়ার্কিং ধারণাগুলির সাথে পরিচয় করিয়ে দেয়।


The code demonstrates how to get the IP address of a website using the 'socket' module.

কোডটি 'socket' মডিউল ব্যবহার করে একটি ওয়েবসাইটের আইপি ঠিকানা কীভাবে পেতে হয় তা দেখায়।


The example shows the IP addresses of 'www.mesanjib.wordpress.com' and 'www.sanjib.pythonanywhere.com'.

উদাহরণটি 'www.mesanjib.wordpress.com' এবং 'www.sanjib.pythonanywhere.com'-এর আইপি ঠিকানা দেখায়।


The text emphasizes the importance of ethical hacking and anonymity.

টেক্সটটি নৈতিক হ্যাকিং এবং বেনামী থাকার গুরুত্বের উপর জোর দেয়।


The chapter discusses the Nmap module for network scanning.

অধ্যায়টি নেটওয়ার্ক স্ক্যানিংয়ের জন্য Nmap মডিউল নিয়ে আলোচনা করে।


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

Nmap একটি নিরাপত্তা স্ক্যানার যা একটি নেটওয়ার্কে হোস্ট এবং পরিষেবাগুলি আবিষ্কার করতে ব্যবহৃত হয়।


The script uses Nmap to scan a target IP address and display open ports.

স্ক্রিপ্টটি একটি টার্গেট আইপি ঠিকানা স্ক্যান করতে এবং খোলা পোর্টগুলি প্রদর্শন করতে Nmap ব্যবহার করে।


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

এটি কালী লিনাক্স ভার্চুয়াল মেশিনের MAC ঠিকানা বা স্থানীয় নেটওয়ার্ক কার্ডের ঠিকানা।


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

এগুলি নেটওয়ার্ক কার্ড। এগুলি ইথারনেট কার্ড, ওয়্যারলেস কার্ড, ওয়্যারলেস অ্যাডাপ্টার ইত্যাদি হতে পারে।


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

তবে এই ঠিকানাটি অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি বিশাল ওয়েব বিশ্বে আপনাকে সনাক্ত করতে ব্যবহৃত হয়।


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

প্রথম তিনটি সংখ্যা প্রস্তুতকারকের প্রতিনিধিত্বকারী প্রতীক।


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

আমরা এই কমান্ডটি জারি করে এখানেও এটি পরীক্ষা করতে পারি: root@kali:# macchanger -s eth0


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

আপনি দেখতে পাচ্ছেন, এটি দুটি MAC ঠিকানা দেখায়—একটি বর্তমান এবং অন্যটি স্থায়ী।


It’s because the command “ifconfig ” will only show the current MAC address. It won’t show the permanent MAC address.

কারণ “ifconfig ” কমান্ডটি শুধুমাত্র বর্তমান MAC ঠিকানা দেখাবে। এটি স্থায়ী MAC ঠিকানা দেখাবে না।


Now we’d like to change our MAC address. Let us issue this command: root@kali:# macchanger –h

এখন আমরা আমাদের MAC ঠিকানা পরিবর্তন করতে চাই। আসুন এই কমান্ডটি দিই: root@kali:# macchanger –h


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

প্রথম তিনটি সেট নেট কার্ড প্রস্তুতকারকের অন্তর্গত এবং যেহেতু এটি পরিবর্তন করা হয়নি, তাই আপনাকে সনাক্ত করা যেতে পারে।


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.

এখন পর্যন্ত, আমাদের জন্য উপলব্ধ সেরা বিকল্পটি হল সবুজ রঙের লাইন— -r, -- random সম্পূর্ণ এলোমেলো MAC সেট করুন—যেখানে স্পষ্টভাবে বলা হয়েছে যে আপনি সম্পূর্ণ এলোমেলো MAC সেট করতে পারেন।


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

অর্থাৎ, ছয়টি সেট সম্পূর্ণ এলোমেলো—যা আমরা পছন্দ করি।


The most important of them is the last blue-colored line. Why is it important?

তাদের মধ্যে সবচেয়ে গুরুত্বপূর্ণ হল শেষ নীল রঙের লাইনটি। এটা কেন গুরুত্বপূর্ণ?


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

আমরা একটি সাধারণ কমান্ডের মাধ্যমে সমস্ত বিক্রেতাদের একটি তালিকা পেতে পারি: l।


If you issue that command it will give a very long list.

আপনি যদি সেই কমান্ডটি দেন তবে এটি একটি খুব দীর্ঘ তালিকা দেবে।


We have taken first few lines—nineteen at present.

আমরা প্রথম কয়েকটি লাইন নিয়েছি—বর্তমানে উনিশটি।


But the last one is 19010 - fc:fe:77 - Hitachi Reftechno, Inc.

কিন্তু শেষটি হল 19010 - fc:fe:77 - Hitachi Reftechno, Inc.


The red-colored number shows how many there are altogether.

লাল রঙের সংখ্যাটি দেখায় মোট কতগুলি আছে।


After that, there are wireless MAC addresses. There are altogether around thirty-nine.

এর পরে, ওয়্যারলেস MAC ঠিকানা রয়েছে। সব মিলিয়ে প্রায় ঊনচল্লিশটি আছে।


You may ask what they are actually. They are nothing but the bits of the company MAC address.

আপনি জিজ্ঞাসা করতে পারেন যে তারা আসলে কি। তারা কোম্পানির MAC ঠিকানার বিট ছাড়া আর কিছুই নয়।


Ethical hackers sometime use that trick.

নৈতিক হ্যাকাররা মাঝে মাঝে সেই কৌশল ব্যবহার করে।