اطلاعیه

Collapse
No announcement yet.

get remote ip before accept() call in linux

Collapse
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • get remote ip before accept() call in linux

    سلام بچه ها.
    چطوری میشه ای پی کلاینتی که به ما کانکت شده رو قبل از اینکه بخوایم تابع accept() رو صدا بزنیم - ایپی اش رو بدست بیاریم. بعد از فراخوانی accept ایپی طرف توی socket struct سیو میشه و همچنین میشه از getpeername() کمک گرفت. اما نکته اینجاست که من قبل از فراخوانی accept میخوام ایپی اون کلاینتی که به من متصل شده رو بدست بیارم.ضمنا سیستم عامل لینوکس هست.
    توی ویندوز مشکلی نداشتم چون با آپشن SO_CONDITIONAL_ACCEPT میشه قبل از فراخوانی accept() این کارو کرد اما بدبختانه توی لینوکس نمیشه مگر اینکه درایور و کرنل مد کار کنم که اونم دسترسی روت میخواد و ممکنه اکانت روت موقع اجرای این اپ در اختیار کاربر نباشه لذا مجبورم یوزرمد برنامه رو طراحی کنم.
    حالا با این حساب کسی ایده ای داره؟

  • #2
    plz delete
    Last edited by captain 8l4ck; 03-07-2014, 12:52 AM.
    600d luc1< iM4n

    Comment


    • #3
      اره مشکل اش که شبیه من هست اما متاسفانه راه حل خاصی پیدا نکرده.اون یه نفر هم که خودت همون طور که گفتی شوت بوده. باز صدرحمت به عمو بیلی . تعجب میکنم لینوکس که اوپن سورس بوده هیچ راهی توی یوزرمد برای این معضل طراحی نکرده بودن.

      Comment


      • #4
        تو می خوای کنترل کنی که کیا بهت وصل بشن یا نشن درسته؟؟ یه چیزی تو مایه های فایروال داری می نویسی درسته آیا؟؟؟
        ببین یه دایمون تو لینوکس هست به این اسم که کارت رو شاید بتونه حل کنه
        اگه نمی خوای از آی پی تیبل و نت فیلتر استفاده کنی تنها راهشه

        tcpwrappers
        https://www.ibm.com/developerworks/a...au-tcpwrapper/

        موفق باشی
        Last edited by captain 8l4ck; 03-07-2014, 12:51 AM.
        600d luc1< iM4n

        Comment


        • #5
          یافتم!
          -اینجامیزارم تا بقیه هم اگه خواستن استفاده کنن.
          میشه از raw-sockets استفاده کرد.خوبیش اینه که روت هم نمیخواد.

          Comment

          Working...
          X