رتبه موضوع:
  • 12 رای - 2.58 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
sending packets in python
#1
درود
در این زبان برنامه نویسی یا بهتر است بگوییم زبان اسکریپت نویسی
طراحی برنامه های networking به سادگی اب خوردن شده است و شما میتوانید فقط با چندین دستور ساده اسکریپت های مفیدی را ایجاد نمایید.

حال میخواهیم ببینیم چه طور میتوانیم یک اسکریپت ساده بنویسیم که یک پکت را به سوی یک کامپیوتر ارسال نماید.

برای اینکار ابتدا نیاز داریم ماژول socket را فراخوانی نماییم.

کد:
import socket

بعد از فراخوانی نوبت به ایجاد متغییر ها می رسد.

برای اینکار ما به 4 متغییر نیاز داریم
1-متغییری که در ان محتوای پکت را ذخیره میکنیم
2-متغییری که ای پی ادرس یا ادرس سایت را در خودش نگه میدارد.
3-متغییری که شماره پورتی که به ان وصل میشویم را در خود ذخیره میکند.
4-متغییر یا بهتر است بگوییم ابجکت سوکت

البته دقت داشته باشید در python همه چیز یک ابجکت است.

برای ارسال پکت نیاز به ایجاد سوکت داریم و برای همین ماژول سوکت را فراخوانی کردیم سوکت در واقع ترکیب ای پی ادرس و پورت است.

حال متغییر ها را تعریف میکنیم

کد:
Padata='string'.encode()
در این متغییر محتوای پکت نگه داری میشود.
کد:
IP='127.0.0.1'
در این متغییر ای پی کامپیوتر مقصد را ذخیره میکنیم همچنین میتوانیم به جای ای پی ادرس سایت را بدهیم به صورت site.com
کد:
PORT=10001

متغییر port هم برای نگه داری شماره پورت است سعی کنید از پورت هایی استفاده نمایید که ازاد باشند.

کد:
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)

متغییر s برای کار با سوکت است در اینجا ما سوکت را تعریف کردیم و درون s قرار دادیم.
اما در مورد عبارات داخل پرانتز...
af_inet در واقع پروتکل اینترنت است به غیر از af_inet میتوان از af_unix هم استفاده کرد اما af_unix فقط بر روی سیستم عامل های یونیکس جواب میدهد و مانند af_inet با ای پی ادرس نیست. به غیر از این ها خانواده های دیگری نیز هستند که انچنان کاربرد ندارند.

عبارت بعدی که مشاهده میکنید یعنی عبارت sock_dgram نوع ارتباط است که در اینجا ارتباط از نوع udp است و اگر بخواهید ارتباط tcp ایجاد کنید باید به جای sock_dgram از SOCK_STREAM استفاده نمایید.

حال که ما سوکت خود را تعریف کرده ایم باید یک اتصال ایجاد نماییم. برای اینکار باید به شکل زیر عمل کنیم.

کد:
s.connect((IP,PORT))

حال اگر مشکلی پیش نیاید ما باید به کامپیوتر مورد نظر کانکت شده باشیم.

اکنون میتوانیم با کامپیوتر مورد نظر سند و رسیو داشته باشیم.

برای ارسال یک پکت با متن دلخواه از کد زیر استفاده میکنیم.
کد:
s.send(Padata)
حالا هر متنی در متغییر Padata ذخیره شده باشد به کامپیوتر مورد نظر ارسال خواهد شد.
و اگر درپشت ان کامپیوتر بر روی ان پورت برنامه ای در حال لیسین باشد میتواند این اطلاعات را دریافت کند و نمایش دهد.

در نهایت باید به اتصال پایان دهیم اینکار بعد از ارسال packet انجام میشود.


کد:
s.close()
موفق باشید.
پاسخ


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  Hacking Secret Ciphers with Python Anarchy 2 1,276 12-02-2014، 05:07 PM
آخرین ارسال: Anarchy
  Invent Your Own Games With Python Anarchy 0 766 09-29-2014، 06:39 PM
آخرین ارسال: Anarchy
  md5 hash in python Anarchy 0 946 09-28-2014، 01:50 PM
آخرین ارسال: Anarchy
  running cmd commands in python Anarchy 0 784 09-28-2014، 12:05 AM
آخرین ارسال: Anarchy
  [Python]Simple IRC Bot Amin_Mansouri 0 1,655 10-11-2011، 11:51 PM
آخرین ارسال: Amin_Mansouri
  پایتون(Python) چیست ؟ Amin_Mansouri 1 5,395 04-15-2011، 03:06 PM
آخرین ارسال: Amin_Mansouri

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان
<------> <____> <<<<----------------->>>> <<<<--->>>>>
This forum uses Lukasz Tkacz MyBB addons.