کاربر تایید شده
آخرین فعالیت ١ هفته پیش

@woohee

پارس کلیکی از ١۰ ماه پیش

تجربه

13900

  • مشکلم حل شد :

    فهمیدم برای اینکه از کلاینت به سرور از طریق سوکت بصورت ریموت بخواهیم متصل شویم باید سرور دارای آی پی عمومی (public IP) باشد .(همون IP ای که تو نت my ip سرچ میکنی بهت میده)

    حالا این public IP هم داستان داره :

    این که می گن برین توی فلان سایت آی پی شون رو زده، این IP متعلق به فرد نیست، متعلق به شرکته. در واقع ISP میاد و یک یا تعداد بیشتری IP رو برای تمام کاربرانش اصطلاحا NAT می کنه و به واسطه هرIP Public تا 255 کاربر اینترنت دار می شن. این موضوع رو میتونین با بررسی IP مثلا بیست نفر که از یه شرکت اینترنت گرفتن چک کنید. یعنی توی سایت هایی که IP واقعی شما رو نشون میده مشاهده خواهید کرد هر 20 کاربر دارای تنها یک IP هستند، و نه 20 آی پی. چرا که هر IP Public برای شرکت های ارائه دهنده اینترنت هزینه بر خواهد بود و هیچ شرکتی دوست نداره متضرر بشه.

    پس برای گرفتن یک public IP باید از طریق قانونی برین مرکزی که ازش اینترنت می گیرین درخواست IP Public بدین و هزینش رو هم پرداخت کنین، تکرار می کنم: هیچ ISP و خدمات دهنده اینترنتی به کاربرانش مادامی که فرد درخواست و تقاضا نده IP Public رایگان نخواهد داد.

    در ضمن این رو هم بگم که؛ اینIP ای رو که شما بطور موقت از ISP ها دریافت میکنین، باهاش نمیشه کارهایی رو کرد که با IP خریداری شده یا همون public . در واقع اگه درست بگم نه میتونی باهاش Remote desktop راه بندازین و نه اینکه بیارینش رو بستر وب و از طریق کلاینت بهش وصل بشین .

  • من کد سوکت به زبان جاوا نوشتم که بصورتی که اگر کامپیوتر و گوشی ای که هر دو به یک شبکه متصل هستند درست کار میکنه و کلاینت و سرور (کامپیوتر و گوشی) به هم متصل میشن ولی نمیتونن از طریق ریموت (اگر به یک شبکه متصل نباشند) به هم متصل بشن.

    لطفا راهنمایی کنید که :

    1. چجوری میتونم سرور را روی هر کامپیوتری خارج از شبکه اجرا کنم و کلاینت بتونه ارتباط برقرار کنه ؟
    2. چجوری آی پی کامپیوترم را در اینترنت عمومی کنم تا بتوانم از طریق سایر دستگاه ها به کامپیوترم متصل شوم ؟
    3. آیا مشکل از کدهای جاوای من است ؟

    کدهای سرور :

    
    package Socket;
    
    import java.io.DataInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.net.InetAddress;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class Server {
        ServerSocket mServer;
        int serverPort = 9090;
            String host = "192.168.43.51";//127.0.0.1
            InetAddress inetAddress ;
    
        InputStream fromClientStream;
        OutputStream toClientStream;
    
        DataInputStream reader;
        PrintWriter writer;
    
        public Server() {
    
            try {
                // create server socket!
                mServer = new ServerSocket(serverPort);
                            ///inetAddress = InetAddress.getByName(host);
                            //mServer = new ServerSocket(serverPort, serverPort, inetAddress);
    
                System.out.println("Server Created!");
    
                // wait for client
                // hold an object of Socket for each client
                Socket client = mServer.accept();
    
                // horaaaaa
                System.out.println("Connected to New Client!");
    
                // input stream (stream from client)
                fromClientStream = client.getInputStream();
    
                // output sream (stream to client)
                toClientStream = client.getOutputStream();
    
                reader = new DataInputStream(fromClientStream);
                writer = new PrintWriter(toClientStream, true);
    
                // send message to client
                writer.println("Salam Client joon");
                System.out.println("Server :Salam Client joon");
    
                // Receive client response (javab:D)
                String javab = reader.readLine();
                System.out.println("Client :" + javab);
    
                // send message to client (again)
                writer.println("khobi??");
                System.out.println("Server :khobi?");
    
                // Receive client response (javab:D)
                javab = reader.readLine();
                System.out.println("Client :" + javab);
    
            } catch (IOException e) {
    
            }
    
        }
    
        public static void main(String[] args) {
            new Server();
        }
    }
    

    کدهای کلاینت :

    
    package Socket;
    
    import java.io.DataInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    public class Client {
        Socket mSocket;
        int port = 9090;
        String serverAddress = "192.168.43.51";//127.0.0.1
    
        InputStream fromServerStream;
        OutputStream toServerStream;
    
        DataInputStream reader;
        PrintWriter writer;
    
        public Client() {
            try {
    
                mSocket = new Socket(serverAddress, port);
    
                System.out.println("connect to server ....");
    
                // input stream (stream from server)
                fromServerStream = mSocket.getInputStream();
    
                // output stream (stream to server)
                toServerStream = mSocket.getOutputStream();
    
                reader = new DataInputStream(fromServerStream);
                writer = new PrintWriter(toServerStream, true);
    
                // first : read server message
                String msg = reader.readLine();
                System.out.println("Server :" + msg);
    
                // send message to server
                writer.println("Salam Servere man");
                System.out.println("Client :Salam Servere man");
    
                // read server message
                msg = reader.readLine();
                System.out.println("Server :" + msg);
    
                // send message to server
                writer.println("Ohum!!!");
                System.out.println("Client :Ohum!!!");
    
            } catch (UnknownHostException e) {
            } catch (IOException e) {
                System.out.println(e.getMessage());
            }
        }
    
        public static void main(String[] args) {
            new Client();
        }
    }
  • @amir یعنی کد رو بصورت زیر بنویسم ؟

    
    public ArrayList<String> getInfo(){
         ArrayList<String> images = new ArrayList<>();
         ArrayList<String> videos= new ArrayList<>();
         images.add("data");
         videos.add("DATA");
    
    return {images, videos};
    }
    

    اما خطا میده و اصلا کار به اجرا نمی کشه .

  • سلام من متدی نوشتم که نیاز دارم چندین لیست را return کند .

    مثلا :

    public ArrayList<String> getInfo(){
         ArrayList<String> images = new ArrayList<>();
         ArrayList<String> videos= new ArrayList<>();
         images.add("data");
         videos.add("DATA");
    
         return images ;
    }
    

    برای return کردن videos باید چکار کنم ؟

  • @m-p

    من هنوز نفهمیدم چجوری و با چه کدی میشه وقتی برنامه نصب شد ولی کاربر اونو اجرا نکرده ، اجرا بشه ؟(شما میتونی سورسشو بررسی کنی و بهم بگی ؟)

    من فقط می خواستم ببینم نحوه عملکرد این رت چجوریه و یه چیزی یاد بگیرم و از رت های آماده استفاده نمی کنم .

  • ٢ ماه پیش @woohee یک بحث به اسم بدست آوردن کدهای منبع جاوااسکریپت درست کرد.

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

    آیا این زبان open source هست ؟

    از کجا میتوانم کد های زبان جاوا اسکریپت را بدست بیاورم ؟؟؟

    لطفا راهنماییم کنید تو گوگل سرچ کردم چیزی پیدا نکردم .

  • سلام من یک رت Remote Access Tool/Trojan برای اندروید را بررسی کردم که وقتی بر روی گوشی نصب شد ، بدون این که کاربر واردش شود یک پیغام توست نشان داد و بدون اجازه کاربر همه ی پرمیشن های حیاتی که مربوط به حریم خصوصی میشه رو بدون اجازه کاربر گرفت (در اندروید 6 به بالا) و دسترسی کامل به گوشی قربانی گرفت .

    لطفا راهنماییم کنید که :

    1. چطوری امکان داره که بدون اجازه کاربر پرمیشن هایی را بگیریم ؟
    2. چجوری وقتی برنامه فقط نصب شد ولی کاربر اونو اجرا نکرد اجرا بشه ؟؟؟ (برای اولین بار)

    دانلود فایل ضمیمه

  • ٢ ماه پیش @woohee به بحث تغییر url بدون لود شدن صفحه وب جواب داد.

    @m-p

    منظورتون زبان hex هست ؟

    میشه روش انجام این کار رو توضیح بدین ؟

    میشه در تلگرام با هم درارتباط باشیم ؟ @toagt

  • ٢ ماه پیش @woohee به بحث تغییر url بدون لود شدن صفحه وب جواب داد.

    @m-p

    سایتی که من می خوام آدرسم به اون عوض بشه مال من نیست .

    فرض کن سایت من آدرسش یاهو هست ولی می خوام وقتی کاربری وارد سایت من شد ، آدرس منو تو آدرس بار نشون نده و آدرس سایت گوگل که مال من نیست رو نشون بده ولی سایت منو نشون بده فقط آدرسشو یه چیز دیگه نشون بده .

    امیدوارم منظورمو فهمونده باشم .

  • ٢ ماه پیش @woohee به بحث تغییر url بدون لود شدن صفحه وب جواب داد.

    @m-p

    کار نکرد . من می خوام که وقتی کاربر وارد سایتم شد همون موقع آدرس عوض بشه ولی وارد اون سایتی که تو آدرس بار هست نشه .

  • ٢ ماه پیش @woohee به بحث تغییر url بدون لود شدن صفحه وب جواب داد.

    @m-p کار نکرد . همونطور که تو متن سوالم هم هست گفتم متد replaceState بهم کمکی نکرد و فقط آدرس داخلی سایتو عوض میکنه در حالیکه من می خوام کل آدرس رو عوض کنم .

    مثلا آدرس سایت من یاهو هست من می خوام بکنمش گوگل .

  • ٢ ماه پیش @woohee یک بحث به اسم تغییر url بدون لود شدن صفحه وب درست کرد.

    سلام . من می خوام آدرس url صفحه سایتم را به آدرس دیگری تغییر دهم بدون اینکه صفحه ، لود شود .

    مشکلی که من دارم اینه که متدهای pushState و replaceState فقط آدرس های داخلی سایتم رو عوض میکنند و

    متد window.location.href هم مشکلش اینه که باعث باز شدن صفحه میشه که من اینو نمی خوام بلکه می خوام آدرس

    سایت دیگری را در نوار آدرس بار نمایش دهد بدون این که آن صفحه لود شود .

  • ٣ ماه پیش @woohee یک بحث به اسم نحوه انتقال و تغییر نام پوشه درست کرد.

    من می خوام در php فایل های داخل پوشه ای را به پوشه دیگر انتقال بدم ولی فقط نام فایل ها در پوشه جدید وارد میشوند و حجم شان 0 کیلوبایت هست و انتقال فایل با خطا مواجه میشه .

    کدی که من استفاده کردم بصورت زیر هست :

    $dir = "b";// پوشه فایل ها
                    if(is_dir($dir)){
                        if($handle = opendir($dir)){
                            while($filename = readdir($handle)){ 
                                chmod($filename , 0777);
                                $content = file_get_contents(trim($filename));
                                $fp = fopen("b/aa/".basename($filename), "wb");// پوشه aa داخل پوشه b هست و می خوام به پوشه aa انتقال دهم
                                if (!$fp)
                                echo 'منتقل نشد';
                                else
                                echo 'منتقل شد';
                                fwrite($fp, $content);
                                fclose($fp);
                            }
                            closedir($handle);
                        }
                    }

    سوال دومم اینه که چجوری اسم یک پوشه را تغییر دهم ؟؟؟

  • @president

    ممنون . منظور از ایونتی فایر میشه چیه ؟

    غیر از جاوااسکریپت راه دیگه ای مثل php نداره ؟ من جاوااسکریپت بلد نیستم .

  • ٣ ماه پیش @woohee یک بحث به اسم نحوه بارگذاری تدریجی تصاویر در php درست کرد.

    من می خوام تو سایتم مطالب را به جای اینکه رفتن به صفحه بعدی داشته باشد مانند سایت اینستاگرام وقتی به پایان صفحه میریم ، ادامه صفحه لود بشه .

    سایت های زیادی را جستجو کردم ولی چیزی دستگیرم نشد ، برای این کار چکار باید بکنم ؟

  • ٣ ماه پیش @woohee به بحث پیدا کردن حفره امنیتی جواب داد.

    @m-p

    برای نفوذ به بعضی آپ ها مثل آمازون که هیچ باگ معروفی ندارن باید بتونی داخلشون باگ ایجاد کنی (اصطلاحا دیتا اینجکت کنی(مسموم کردن هدف)).در نتیجه به برنامه نویسی نیاز داری

    چجوری میتونیم مسمومشون کنیم وقتی که کدهاشون تو سرور هست و ما بهشون دسترسی نداریم ؟ میشه بیشتر توضیح بدین ؟

    بابت معرفی کردن سایت nabegheha.com بسیار متشکرم .

  • ٣ ماه پیش @woohee به بحث پیدا کردن حفره امنیتی جواب داد.

    @tilkacoder دوست عزیز ، بی صبرانه منتظر مقاله تون هستم

  • @rubik اگر منظور از عدد 1 یعنی فعال بودن پس اگر عددی غیر از 1 را وارد کنیم ، output_buffering را برابر همان عدد قرار میدهد ؟

  • @rubik مشکل حل شد اما یه مشکل جدید ایجاد شد .

    من همین کد را زدم

    php_value output_buffering 1 php_value output_buffering on

    حتی همان عدد 1 را گذاشتم و به جای اینکه مقدار output_buffering برابر عدد 1 باشد ، نا محدود شده بود . واقعا نامحدود شده بود ، یعنی حدود 2,500,000 خط متن داخل یکی از صفحاتم نوشتم و سپس متد header() در php را صدا زدم که اتوماتیک به صفحه ای دیگر برود و این کار انجام شد در حالیکه نباید انجام میشد چون مقدار کاراکترهای output_buffering را در کد بالا برابر 1 قرار داده بودم .

    و از طریق متد get_ini() هم مقدار output_buffering را مشاهده کردم ، به جای اینکه مقدار عددی نشان دهد مقدار 1 php_value output_buffering on را نشان میدهد .

    مشکل از کجاست ؟

    عکس اول

    عکس دوم

  • @rubik نه متاسفانه ، وقتی که کد شما رو میزنم ، مقدار output_buffering برابر 0 میشود و وقتی که کد شما رو حذف میکنم ، مقدار output_buffering برابر 4096 میشود .

  • @rubik می خوام مقدار output_buffering را افزایش بدم . چون مقدار 4096 بسیار کم است .

  • @rubik پیدا کردم ، وقتی فایل را باز کردم ، خالی بود و هیچ متنی داخلش نبود . آیا فقط همین کد

    php_flag output_buffering 4096

    را وارد کنم ؟

    همین کد را وارد کردم اما buffering کار نمی کند و با متد get_ini() هم مقدار را مشاهده کردم که برابر 0 بود .

  • @rubik منظورتان این است که این مسیر را بروم ؟

    Files -->Directory Privacy --> setting --> web root

  • @rubik ببخشید این فایل کجا قرار دارد ؟

  • @rubik

    بله اما گزینه ای به نام output_bufferingرا نتوانستم پیدا کنم .

    عکس اول

    عکس دوم

  • @amir

    میشه لطفا نحوه استفاده از فانکشن ini_set را توضیح بدهید ؟

    من این کد را میزنم و سپس آن را چاپ میکنم اما خروجی مقدار 4096 را نمایش میدهد و مقداری که من وارد میکنم را ست نمی کند .

    
    ini_set('output_buffering' , 999999);
    echo ini_get("output_buffering");
    

    و بصورت زیر هم امتحان کردم و درست نشد :

    
    ini_set('output_buffering' , '99999');
    echo ini_get("output_buffering");
    
  • ٣ ماه پیش @woohee یک بحث به اسم نحوه تغییر فایل php.ini در سرور سی پنل درست کرد.

    سلام .

    من می خوام مقدار output_buffering را در فایل php.ini تغییر بدهم و مسیر آن بصورت /opt/alt/php56/etc/php.ini است که نمی توانم در هاستم آن را پیدا کنم .

    طبق آموزش های php استاد عظیمی دارم پیش میرم ولی در هاست سی پنل command line ندارد .

    لطفا روشی را به من یاد بدهید که بتوانم تغییرات دلخواهم را بر روی آن فایل بوجود بیارم ؟

  • ٣ ماه پیش @woohee به بحث میکروفون مناسب برای ضبط ویدیو جواب داد.

    سلام . من پارسال هدفون میکروفون دار به قیمت 35,000 تومن خریدم و هر وقت صدامو باهاش ضبط میکنم کیفیتش عالیه و صدای نویز نداره .

    مدلش XP-HS609 هست .