ساخت تونل
نکته: این تونلها تا زمانی که ترمینال باز هست کار میکنه و با بستن ترمینال بسته میشه. اگر میخواید ترمینال رو ببندید میتونید اول دستور screen و یا nohup رو بزنید تا تونل با بستن ترمینال باز بمونه (ممکنه لازم باشه screen و nohup رو نصب کنید) ولی من پیشنهاد میدم یه گوشههای باز نگهش دارید تا اگر خطایی داد ببنید مشکل چیه
اگر دقیقا طبق این نوشتهها پیش برید stunnel و tor به صورت سرویس بعد از هر بار روشن شدن سیستم روی سیستم شما اجرا میشند ولی بقیه رو باید دستی اجرا کنید.
پیشنهاد میکنم هر کدوم از سرویسهارو رو یک پورت لوکال اجرا کنید (الان همشون رو 1080 هستند) تا بتونید در صورت نیاز همزمان ازشون استفاده کنید. روشهای دیگهای هم هست که میتونه هر وقت سرعت یه سرویس بالاتر بود ترافیک رو از اون روش انتقال بده که سعی میکنم به زودی اضافش کنم.
➖➖➖➖➖➖➖➖➖➖➖➖➖➖
راهاندازی تونل به وسیله shadow socks
شدو ساکس یکی از راههای ساخت تونل هست لازمه شما یه سرور در خارج از ایران داشته باشید از سیستم خودتون بهش وصل بشید سمت سرور رو فکر نکنم لازم باشه بگم چون تصورم اینه که اگر سرور داشته باشید میتونید شدو ساکس رو هم نصب کنید ولی اگر خواستید اضافش میکنم.
الان شدو ساکس رو سیستم شما نصب شده و با دستور زیر میتونید یک تونل رو سیستم خودتون ایجاد کنید.
به جای "server" آیپی یا آدرس سرور، به جای "password" پسورد و جای "port" پورت، جای "encryption" انکریپشن سرویس رو وارد کنید و به جای "local port" پورت لوکال سیستم که خودتون تایینش میکنید. بعد تونل رو سیستم شما ایجاد میشه و باید به مرحله رد کردن ترافیک از تونل برید.
میشه دستورات بالا رو تو یه فایل به این شکل ذخیره کرد
و دستور رو اینجوری زد
شدو ساکس در پورتهای مختلف و انکریپشنهای متفاوت سرعتهای مختلفی میده.
➖➖➖➖➖➖➖➖➖➖➖
تونل با کمک ssh
نمیدونم اسم این تونل چیه ولی ازش استفاده میکنم اگر دسترسی ssh به یک سرور دارید میتونید به این طریق یک تونل رو سیستم خودتون ایجاد کنید
به این طریق یک تونل رو پورت ۱۰۸۰ سیستمتون ایجاد میشه
➖➖➖➖➖➖➖➖➖➖
تونل با کمک tor
تور یکی از امن ترین شبکههای دنیاست
سپس تنظیمات تور رو باید انجام بدید
موارد زیر رو به انتهای فایل اضافه کنید با کنترل + x و انتخاب y میتونید تغییرات رو ذخیره کنید
تعدادی از پلهای تور هم در این تنظیمات هستند، پلها ممکن است بسته شوند از https://bridges.torproject.org میتونید پلهای جدید بگیرید و با موارد بالا جایگزین کنید.
بعد ذخیره تنظیمات با دستور زیر تور را دوباره راهاندازی کنید
حالا تونل در سیستم شما اجرا شده و لازمه ترافیک رو ازش رد کنید
➖➖➖➖➖➖➖➖➖➖➖
ساخت تونل با yourfreedom
باید قبلش برید تو سایتش ثبتنام کنید http://your-freedom.net
از قسمت دانلود نسخه جاوا دانلود کنید
از حالت فشرده خارج کنید
با cd به محل اکسترکت شده برید و دستور زیر رو وارد کنید
حواستون باشه که لازمه قبلش جاوا رو نصب کرده باشید. اگر برای نصب جاوا به مشکل خوردید بگید شاید برای اونم یه چیزی ردیف کردیم.
خوب فیریدام باید اجرا شه. در اولین دفعه خودش پنجره کانفیگ رو باز میکنه، اگر بعد از مدتی دیدید کنده یا کار نمیکنه دوباره از همین قسمت دنبال سرورهای جدید بگردید.
در پنجره کانفیگ چندین بار نکست رو بزنید تا شروع کنه دنبال سرورهاش بگرده (طول میکشه) بعد از پیدا شدن سرورها یکیش رو انتخاب کنید و نکست رو بزنید.
یوزر و پسورد اکانتتون رو وارد کنید، ذخیره کنید و بیاید بیرون
استارت کانکشن رو بزنید بعد از چند ثانیه ارتباط برقرار میشه
stunnel
اگر فایل اصل
نکته: این تونلها تا زمانی که ترمینال باز هست کار میکنه و با بستن ترمینال بسته میشه. اگر میخواید ترمینال رو ببندید میتونید اول دستور screen و یا nohup رو بزنید تا تونل با بستن ترمینال باز بمونه (ممکنه لازم باشه screen و nohup رو نصب کنید) ولی من پیشنهاد میدم یه گوشههای باز نگهش دارید تا اگر خطایی داد ببنید مشکل چیه
اگر دقیقا طبق این نوشتهها پیش برید stunnel و tor به صورت سرویس بعد از هر بار روشن شدن سیستم روی سیستم شما اجرا میشند ولی بقیه رو باید دستی اجرا کنید.
پیشنهاد میکنم هر کدوم از سرویسهارو رو یک پورت لوکال اجرا کنید (الان همشون رو 1080 هستند) تا بتونید در صورت نیاز همزمان ازشون استفاده کنید. روشهای دیگهای هم هست که میتونه هر وقت سرعت یه سرویس بالاتر بود ترافیک رو از اون روش انتقال بده که سعی میکنم به زودی اضافش کنم.
➖➖➖➖➖➖➖➖➖➖➖➖➖➖
راهاندازی تونل به وسیله shadow socks
شدو ساکس یکی از راههای ساخت تونل هست لازمه شما یه سرور در خارج از ایران داشته باشید از سیستم خودتون بهش وصل بشید سمت سرور رو فکر نکنم لازم باشه بگم چون تصورم اینه که اگر سرور داشته باشید میتونید شدو ساکس رو هم نصب کنید ولی اگر خواستید اضافش میکنم.
$ sudo apt install libevent-dev $ sudo apt install python-pip $ sudo apt install python-dev $ sudo apt install python-m2crypto $ sudo pip install gevent $ sudo pip install shadowsocks الان شدو ساکس رو سیستم شما نصب شده و با دستور زیر میتونید یک تونل رو سیستم خودتون ایجاد کنید.
bash $ sslocal -s “server” -k password -t 600 -p port -l 1080 -m encryption
به جای "server" آیپی یا آدرس سرور، به جای "password" پسورد و جای "port" پورت، جای "encryption" انکریپشن سرویس رو وارد کنید و به جای "local port" پورت لوکال سیستم که خودتون تایینش میکنید. بعد تونل رو سیستم شما ایجاد میشه و باید به مرحله رد کردن ترافیک از تونل برید.
میشه دستورات بالا رو تو یه فایل به این شکل ذخیره کرد
json { "server": "sever addr", "server_port": port, "local_port": 1080, "password": "password", "timeout":600, "method":"aes-256-cfb" } و دستور رو اینجوری زد
bash $ sslocal -c path_file
شدو ساکس در پورتهای مختلف و انکریپشنهای متفاوت سرعتهای مختلفی میده.
➖➖➖➖➖➖➖➖➖➖➖
تونل با کمک ssh
نمیدونم اسم این تونل چیه ولی ازش استفاده میکنم اگر دسترسی ssh به یک سرور دارید میتونید به این طریق یک تونل رو سیستم خودتون ایجاد کنید
bash $ ssh user@server.address -D 1080
به این طریق یک تونل رو پورت ۱۰۸۰ سیستمتون ایجاد میشه
➖➖➖➖➖➖➖➖➖➖
تونل با کمک tor
تور یکی از امن ترین شبکههای دنیاست
bash $ sudo apt install tor $ sudo apt install python-pip $ sudo apt install python-dev gcc $ sudo pip install obfsproxy
سپس تنظیمات تور رو باید انجام بدید
bash $ sudo nano /etc/tor/torrc
موارد زیر رو به انتهای فایل اضافه کنید با کنترل + x و انتخاب y میتونید تغییرات رو ذخیره کنید
bash SocksPort 1080 SocksListenAddress 127.0.0.1 Bridge obfs3 194.132.209.187:39413 Bridge obfs3 194.68.32.131:56006 Bridge obfs3 107.191.58.23:34344 UseBridges 1 ClientTransportPlugin obfs2,obfs3 exec /usr/local/bin/obfsproxy --managed
تعدادی از پلهای تور هم در این تنظیمات هستند، پلها ممکن است بسته شوند از https://bridges.torproject.org میتونید پلهای جدید بگیرید و با موارد بالا جایگزین کنید.
بعد ذخیره تنظیمات با دستور زیر تور را دوباره راهاندازی کنید
bash $ sudo service tor restart
حالا تونل در سیستم شما اجرا شده و لازمه ترافیک رو ازش رد کنید
➖➖➖➖➖➖➖➖➖➖➖
ساخت تونل با yourfreedom
باید قبلش برید تو سایتش ثبتنام کنید http://your-freedom.net
از قسمت دانلود نسخه جاوا دانلود کنید
از حالت فشرده خارج کنید
با cd به محل اکسترکت شده برید و دستور زیر رو وارد کنید
bash java -jar freedom.jar
حواستون باشه که لازمه قبلش جاوا رو نصب کرده باشید. اگر برای نصب جاوا به مشکل خوردید بگید شاید برای اونم یه چیزی ردیف کردیم.
خوب فیریدام باید اجرا شه. در اولین دفعه خودش پنجره کانفیگ رو باز میکنه، اگر بعد از مدتی دیدید کنده یا کار نمیکنه دوباره از همین قسمت دنبال سرورهای جدید بگردید.
در پنجره کانفیگ چندین بار نکست رو بزنید تا شروع کنه دنبال سرورهاش بگرده (طول میکشه) بعد از پیدا شدن سرورها یکیش رو انتخاب کنید و نکست رو بزنید.
یوزر و پسورد اکانتتون رو وارد کنید، ذخیره کنید و بیاید بیرون
استارت کانکشن رو بزنید بعد از چند ثانیه ارتباط برقرار میشه
stunnel
bash $ sudo apt install stunnel4
اگر فایل اصل
bridges.torproject.org
The Tor Project | Privacy & Freedom Online
Defend yourself against tracking and surveillance. Circumvent censorship.
ی کانفیگ وجود داره پاکش کنید
و دوباره بسازیدش
این تنظیمات رو بزارید توش
با کنترل + x و انتخاب y ذخیرش کنید.
به مسیر زیر برید و ENABLED برابر 1 کنید.
ذخیره کنید و stunnel رو ریاستارت کنید
تونل رو سیستم شما ایجاد شده و حالا باید ترافیکتون رو ازش رد کنید.
openvpn
از openvpn هم میشه در لینوکس استفاده کرد اول نصبش کنید (فایل کانفیگ رو یا خودتون باید تو سرورتون بسازید یا از کسی که دارید از سرویسش استفاده میکنید بگیرید)
فایل کانفیگ openvpn رو دانلود کنید و به این طریق وصل شید
با اجرا این دستور کل ترافیک شما میره سمت سرور و لازم نیست پراکسی جایی ست کنید، در نتیجه تمام تنظیمات پراکسیهاتون رو مستقیم کنید.
#socks5
✍ mr.ashkan
bash $sudo rm /etc/stunnel.conf
و دوباره بسازیدش
bash $ sudo nano /etc/stunnel.conf
این تنظیمات رو بزارید توش
bash pid = /stunnel4.pid client=yes [name] accept=1080 connect=serverAdress:serverPort
با کنترل + x و انتخاب y ذخیرش کنید.
به مسیر زیر برید و ENABLED برابر 1 کنید.
bash $ sudo nano /etc/default/stunnel4
ذخیره کنید و stunnel رو ریاستارت کنید
bash $ sudo service stunnel4 restart
تونل رو سیستم شما ایجاد شده و حالا باید ترافیکتون رو ازش رد کنید.
openvpn
از openvpn هم میشه در لینوکس استفاده کرد اول نصبش کنید (فایل کانفیگ رو یا خودتون باید تو سرورتون بسازید یا از کسی که دارید از سرویسش استفاده میکنید بگیرید)
bash $ sudo apt install openvpn
فایل کانفیگ openvpn رو دانلود کنید و به این طریق وصل شید
bash $ sudo openvpn filename
با اجرا این دستور کل ترافیک شما میره سمت سرور و لازم نیست پراکسی جایی ست کنید، در نتیجه تمام تنظیمات پراکسیهاتون رو مستقیم کنید.
#socks5
✍ mr.ashkan
یادداشت های برنامه نویس آماتور | Amateur programmer notes
ی کانفیگ وجود داره پاکش کنید bash $sudo rm /etc/stunnel.conf و دوباره بسازیدش bash $ sudo nano /etc/stunnel.conf این تنظیمات رو بزارید توش bash pid = /stunnel4.pid client=yes [name] accept=1080 connect=serverAdress:serverPort با کنترل + x و انتخاب y…
آموزشهای مربوط به راه اندازی تونل در سرور لینوکس 🔝
🛑از دقایقی پیش تلگرام بدون فیلتر در دسترس قرار گرفت، اما از سرعت خوبی برخوردار نیست.
الان دیگه وضعی شده که طرف میاد فایل منیجر تیم سید ادیت میزنه میفروشه 😐🤦♂
با توجه به اینکه تلگرام از فیلتر خارج شده است و یک پروسه چند ساعته باید طی شود تا DNS ها بر روی CDN ها و ISP ها بخوبی ست شود ، اختلال و کندی سرعت اجتناب ناپذیر است و طی چند ساعت آینده برطرف خواهد شد .
لیست نرم افزار هایی که رفع فیلتر شدند👇
پینترست (Pinterest)
سوآرم (Swarm)
فوراسکوئر (Foursquare)
ساوندکلاود (Soundcloud)
مدیوم (Medium)
کورا (Quora)
ردیت (Reddit)
پینترست (Pinterest)
سوآرم (Swarm)
فوراسکوئر (Foursquare)
ساوندکلاود (Soundcloud)
مدیوم (Medium)
کورا (Quora)
ردیت (Reddit)
هاجی ربات بعد از سال ها تلاش و زحمت و اپدیت #پایان خود را اعلام کرد
پایان پروژه حاجی ربات
پایان پروژه حاجی ربات
jgs1277@hotmail.com:090501jgs:Free:Spotify
brnn.phantom.patrick@gmail.com:Books!81:Free:Spotify
mssrini32@gmail.com:3414shit:Free:Spotify
cabeza_0907@hotmail.com:carlitos619:Free:Spotify
kelgas1@o2.pl:logitech7:Free:Spotify
zacharygrandstaff@gmail.com:Zach5798:Free:Spotify
dan.spoiala2@gmail.com:dan242000:Free:Spotify
scott.orndorff@sbcglobal.net:Hannah2000:Free:Spotify
johannesmelander97@hotmail.com:johan8nes:Free:Spotify
jadensmithwwe33@yahoo.com:Potatoes6:Free:Spotify
iooh.silveira@gmail.com:ionara93:Free:Spotify
liggylu@yahoo.com:ligon123:Free:Spotify
brians-5@hotmail.com:baconboy1:Free:Spotify
cdroussiotis@yahoo.com:fdu1985131:Free:Spotify
soldierdragon@hotmail.es:8ene1990:Free:Spotify
domanick007@gmail.com:Catdog789:Free:Spotify
jtjettstar@gmail.com:Cooleyes7:Free:Spotify
shaun-robertson12@hotmail.com:Apple78:Free:Spotify
desirae_varela@yahoo.com:svnya299:Free:Spotify
bradwardrope@ymail.com:liverpool444:Free:Spotify
yipkin2008@hotmail.com:Belle922712:Free:Spotify
petermotion@gmail.com:Portugal27:Free:Spotify
brnn.phantom.patrick@gmail.com:Books!81:Free:Spotify
mssrini32@gmail.com:3414shit:Free:Spotify
cabeza_0907@hotmail.com:carlitos619:Free:Spotify
kelgas1@o2.pl:logitech7:Free:Spotify
zacharygrandstaff@gmail.com:Zach5798:Free:Spotify
dan.spoiala2@gmail.com:dan242000:Free:Spotify
scott.orndorff@sbcglobal.net:Hannah2000:Free:Spotify
johannesmelander97@hotmail.com:johan8nes:Free:Spotify
jadensmithwwe33@yahoo.com:Potatoes6:Free:Spotify
iooh.silveira@gmail.com:ionara93:Free:Spotify
liggylu@yahoo.com:ligon123:Free:Spotify
brians-5@hotmail.com:baconboy1:Free:Spotify
cdroussiotis@yahoo.com:fdu1985131:Free:Spotify
soldierdragon@hotmail.es:8ene1990:Free:Spotify
domanick007@gmail.com:Catdog789:Free:Spotify
jtjettstar@gmail.com:Cooleyes7:Free:Spotify
shaun-robertson12@hotmail.com:Apple78:Free:Spotify
desirae_varela@yahoo.com:svnya299:Free:Spotify
bradwardrope@ymail.com:liverpool444:Free:Spotify
yipkin2008@hotmail.com:Belle922712:Free:Spotify
petermotion@gmail.com:Portugal27:Free:Spotify
Coinpot drop
deman2o21@gmail.com:Slipon07101973|0.00000077 BTC
afocus@i.ua:sk8dm9wf7ih|0.00000073 BTC
sir.ashraf54@yahoo.com:ashraf2010
priymak.kolya@mail.ru:5bes-Huk|0.00000181 BTC
amineliverpool13@hotmail.fr:facebook1706|0.00000010 BTC
indio_desouza@hotmail.com:apaxe465|0.00006659 BTC
wilda3221@gmail.com:oktober2007|0.00000110 BTC
kedsbit@gmail.com:4xAndYIman|0.00000499 BTC, 5.41000000 DOGE
jubirr88@gmail.com:adiputra88|0.00000365 BTC
mihaillitvyak@gmail.com:4071972ML|0.00000000 BTC
billypogi01@gmail.com:keanbilly3|0.00000137 BTC, 2.90000000 DOGE, 0.00168352 LTC, 0.00000970 DASH
watjanee_mild@hotmail.com:fenrir23414|0.00008255 BTC
mersnisamsem@gmail.com:011085sm|0.00009828 BTC, 194.92000000 DOGE, 0.00354310 LTC, 0.00040116 DASH
mr.walt@yahoo.com:imalive4815162342|0.00000000 BTC
demonyik@mail.ru:19831983zxcv|0.00000199 BTC
rapepimd@gmail.com:staytrue|0.00000016 BTC
moh.waheed.cis@gmail.com:98472150|0.00005900 BTC, 37.60000000 DOGE, 0.00012373 DASH
jonathan-dnice@live.fr:lokpo1991|0.00000755 BTC
kuhtin.u.a@gmail.com:k98964622n|0.00001503 BTC
riseupward2015@gmail.com:3130611833s|0.00000098 BTC
chahbaayoub@gmail.com:chahba1996|0.00000188 BTC, 0.01333333 DOGE
belocerkovecden@gmail.com:titova2007|0.00001627 BTC, 17.69000000 DOGE, 0.00033967 LTC
machadoa22@gmail.com:terra1967|0.00000023 BTC
mestarmestarhamza@outlook.fr:Hamza0123
ellina0807@mail.ru:as444pid|0.00001448 BTC
sioussama25@gmail.com:bensaid25|0.00001590 BTC
sergeyegor2015@yandex.ru:irina1974|0.00016925 BTC
funderskov@live.dk:Trustno1butme|0.00000056 BTC
mar80126310@yandex.ru:egor010111|0.00007589 BTC
arguris.sigalas@gmail.com:argiris212995|0.00003268 BTC, 34.80000000 DOGE, 0.00073775 LTC, 0.00000108 DASH
abderrahman05@hotmail.com:bm18011989|0.00005189 BTC
crisaindia@yahoo.com:42mue1raju|0.00004230 BTC
valya210594@mail.ru:2014matias|0.00000055 BTC
MerenAMG555@yandex.ru:krikun123|0.00006478 BTC
davydow79@gmail.com:daved22051979
deejayradhitya@gmail.com:bambang1
reedangel30@gmail.com:vaseavasea1|0.00006306 BTC
sari00@live.fr:212677283842|0.00000066 BTC
san722011@mail.ru:totiko7285|0.00000000 BTC
aman.gjn@gmail.com:littlefreak
stepeanienko@list.ru:13256847|0.00024785 BTC
dragon-tt@outlook.fr:med27525551|0.00000000 BTC
boss.parashchenko@inbox.ru:0668602006|0.00000282 BTC
aldibogem@gmail.com:21031999|0.00000112 BTC
redouanedoury11@gmail.com:ozil10red1986|0.00002565 BTC
dimabal131@gmail.com:89294494|0.00000000 BTC
osans1964@gmail.com:2412oasis64|0.00000000 BTC
hassanelalami1957@gmail.com:tiyana2222|0.00001549 BTC
peterdimian@gmail.com:peter1999|0.00000093 BTC
deman2o21@gmail.com:Slipon07101973|0.00000077 BTC
afocus@i.ua:sk8dm9wf7ih|0.00000073 BTC
sir.ashraf54@yahoo.com:ashraf2010
priymak.kolya@mail.ru:5bes-Huk|0.00000181 BTC
amineliverpool13@hotmail.fr:facebook1706|0.00000010 BTC
indio_desouza@hotmail.com:apaxe465|0.00006659 BTC
wilda3221@gmail.com:oktober2007|0.00000110 BTC
kedsbit@gmail.com:4xAndYIman|0.00000499 BTC, 5.41000000 DOGE
jubirr88@gmail.com:adiputra88|0.00000365 BTC
mihaillitvyak@gmail.com:4071972ML|0.00000000 BTC
billypogi01@gmail.com:keanbilly3|0.00000137 BTC, 2.90000000 DOGE, 0.00168352 LTC, 0.00000970 DASH
watjanee_mild@hotmail.com:fenrir23414|0.00008255 BTC
mersnisamsem@gmail.com:011085sm|0.00009828 BTC, 194.92000000 DOGE, 0.00354310 LTC, 0.00040116 DASH
mr.walt@yahoo.com:imalive4815162342|0.00000000 BTC
demonyik@mail.ru:19831983zxcv|0.00000199 BTC
rapepimd@gmail.com:staytrue|0.00000016 BTC
moh.waheed.cis@gmail.com:98472150|0.00005900 BTC, 37.60000000 DOGE, 0.00012373 DASH
jonathan-dnice@live.fr:lokpo1991|0.00000755 BTC
kuhtin.u.a@gmail.com:k98964622n|0.00001503 BTC
riseupward2015@gmail.com:3130611833s|0.00000098 BTC
chahbaayoub@gmail.com:chahba1996|0.00000188 BTC, 0.01333333 DOGE
belocerkovecden@gmail.com:titova2007|0.00001627 BTC, 17.69000000 DOGE, 0.00033967 LTC
machadoa22@gmail.com:terra1967|0.00000023 BTC
mestarmestarhamza@outlook.fr:Hamza0123
ellina0807@mail.ru:as444pid|0.00001448 BTC
sioussama25@gmail.com:bensaid25|0.00001590 BTC
sergeyegor2015@yandex.ru:irina1974|0.00016925 BTC
funderskov@live.dk:Trustno1butme|0.00000056 BTC
mar80126310@yandex.ru:egor010111|0.00007589 BTC
arguris.sigalas@gmail.com:argiris212995|0.00003268 BTC, 34.80000000 DOGE, 0.00073775 LTC, 0.00000108 DASH
abderrahman05@hotmail.com:bm18011989|0.00005189 BTC
crisaindia@yahoo.com:42mue1raju|0.00004230 BTC
valya210594@mail.ru:2014matias|0.00000055 BTC
MerenAMG555@yandex.ru:krikun123|0.00006478 BTC
davydow79@gmail.com:daved22051979
deejayradhitya@gmail.com:bambang1
reedangel30@gmail.com:vaseavasea1|0.00006306 BTC
sari00@live.fr:212677283842|0.00000066 BTC
san722011@mail.ru:totiko7285|0.00000000 BTC
aman.gjn@gmail.com:littlefreak
stepeanienko@list.ru:13256847|0.00024785 BTC
dragon-tt@outlook.fr:med27525551|0.00000000 BTC
boss.parashchenko@inbox.ru:0668602006|0.00000282 BTC
aldibogem@gmail.com:21031999|0.00000112 BTC
redouanedoury11@gmail.com:ozil10red1986|0.00002565 BTC
dimabal131@gmail.com:89294494|0.00000000 BTC
osans1964@gmail.com:2412oasis64|0.00000000 BTC
hassanelalami1957@gmail.com:tiyana2222|0.00001549 BTC
peterdimian@gmail.com:peter1999|0.00000093 BTC
برای دولوپرهای تازهکار: حواستان باشد که در دام این ۱۴ اشتباه نیفتید!
۱. بهجای اینکه کد بزنید، فقط مشغول مطالعه در مورد کدنویسی هستید
۲. جوری کدنویسی را یاد میگیرید که گویا قرار است امتحان بدهید
۳. با بررسی نکردن عملکرد کدهای خود، کوهی از مشکلات را روی هم تلنبار میکنید
۴. سعی دارید در انزوا کدنویسی را یاد بگیرید
۵. خیلی زود از کوره در میروید
۶. فکر میکنید برای اینکه کدنویسی یاد بگیرید نیاز به امکانات خاصی دارید
۷. تفاوت میان حروف بزرگ و کوچک را نادیده میگیرید
۸. با روش نادرستی درخواست کمک میکنید
۹. فکر میکنید برای موفقیت در برنامهنویسی حتماً باید نابغهٔ ریاضیات باشید
۱۰. از تغییر دادن کدهای بد خود رویگردان هستید
۱۱. فقط به تایپ کردن کدها فکر میکنید
۱۲. میخواهید همهچیز را به یکباره بیاموزید
۱۳. انتظار دارید روزی برسد که همهچیز را در مورد برنامهنویسی بدانید
۱۴. زود ناامید میشوید و به راه خود ادامه نمیدهید
۱. بهجای اینکه کد بزنید، فقط مشغول مطالعه در مورد کدنویسی هستید
۲. جوری کدنویسی را یاد میگیرید که گویا قرار است امتحان بدهید
۳. با بررسی نکردن عملکرد کدهای خود، کوهی از مشکلات را روی هم تلنبار میکنید
۴. سعی دارید در انزوا کدنویسی را یاد بگیرید
۵. خیلی زود از کوره در میروید
۶. فکر میکنید برای اینکه کدنویسی یاد بگیرید نیاز به امکانات خاصی دارید
۷. تفاوت میان حروف بزرگ و کوچک را نادیده میگیرید
۸. با روش نادرستی درخواست کمک میکنید
۹. فکر میکنید برای موفقیت در برنامهنویسی حتماً باید نابغهٔ ریاضیات باشید
۱۰. از تغییر دادن کدهای بد خود رویگردان هستید
۱۱. فقط به تایپ کردن کدها فکر میکنید
۱۲. میخواهید همهچیز را به یکباره بیاموزید
۱۳. انتظار دارید روزی برسد که همهچیز را در مورد برنامهنویسی بدانید
۱۴. زود ناامید میشوید و به راه خود ادامه نمیدهید
✨دبیان، انتخاب جدید گوگل به عنوان سیستم عامل داخلی✨
شرکت گوگل سال ها از توزیع اختصاصی خود با نام Goobuntu که یک توزیع مبتنی بر Ubuntu بود به عنوان پلتفرم توسعه نرم افزار استفاده می نمود اما از مدتی پیش گوگل پروژه مهاجرت به توزیع جدیدی مبتنی بر Debian را آغاز نموده است.
این توزیع مبتنی بر نسخه در حال توسعه Debian 10 ( با نام کد Buster ) ایجاد شده است و gLinux نام دارد.
گوگل قصد دارد تغییرات را برای توسعه دهندگان Debian ارسال کند از این رو گوگل نیز در توسعه Debian 10 مشارکت مستقیم دارد.
خبر رسمی در خصوص علت این مهاجرت منتشر نشده است و البته همان گونه که می دانید گوگل هیچ گاه کارمندان خود را به استفاده از سیستم عامل خاصی اجبار نمی کند اما همواره توزیع های مختلف لینوکس برای اکثر آن ها در اولویت قرار دارد.
شرکت گوگل سال ها از توزیع اختصاصی خود با نام Goobuntu که یک توزیع مبتنی بر Ubuntu بود به عنوان پلتفرم توسعه نرم افزار استفاده می نمود اما از مدتی پیش گوگل پروژه مهاجرت به توزیع جدیدی مبتنی بر Debian را آغاز نموده است.
این توزیع مبتنی بر نسخه در حال توسعه Debian 10 ( با نام کد Buster ) ایجاد شده است و gLinux نام دارد.
گوگل قصد دارد تغییرات را برای توسعه دهندگان Debian ارسال کند از این رو گوگل نیز در توسعه Debian 10 مشارکت مستقیم دارد.
خبر رسمی در خصوص علت این مهاجرت منتشر نشده است و البته همان گونه که می دانید گوگل هیچ گاه کارمندان خود را به استفاده از سیستم عامل خاصی اجبار نمی کند اما همواره توزیع های مختلف لینوکس برای اکثر آن ها در اولویت قرار دارد.
SQLServer
امروز یکی از دوستانم پرسشی از من کرد مبنی بر اینکه سریعترین راه ممکن برای مشاهده دسترسی های مربوط به یک لاگین (در سطح سرور) و یوزر (در سطح دیتابیس) چیست؟
پاسخ سوال کوئری های فسقلی زیر است
—------------------------------------
—------------------------------------
نمونه خروجی
نمونه خروجی
✍mr.ashkan
امروز یکی از دوستانم پرسشی از من کرد مبنی بر اینکه سریعترین راه ممکن برای مشاهده دسترسی های مربوط به یک لاگین (در سطح سرور) و یوزر (در سطح دیتابیس) چیست؟
پاسخ سوال کوئری های فسقلی زیر است
—------------------------------------
—------------------------------------
SELECT * FROM fn_my_permissions(NULL, 'SERVER')نمونه خروجی
entity_name subentity_name permission_name
server CONNECT SQL
server SHUTDOWN
server CREATE ENDPOINT
server CREATE ANY DATABASE
server CREATE AVAILABILITY GROUP
server ALTER ANY LOGIN
—------------------------------------
—------------------------------------
USE YourDatabase
SELECT * FROM fn_my_permissions (NULL, 'DATABASE')
GO نمونه خروجی
entity_name subentity_name permission_name
database CREATE TABLE
database CREATE VIEW
database CREATE PROCEDURE
database CREATE FUNCTION
database CREATE RULE
✍mr.ashkan
1-1)بررسی اتصال به اینترنت
برای انجام هرکار با اینترنت جهت جلوگیری از خطاهای احتمالی ابتدا باید بررسی کنیم ایا دستگاه به اینترنت متصل هست یا نه. پس در اکتیویتی در ابتدا دو کد زیر رو بنویسید.
Context myContext = null;
ConnectivityManager connectMngr = myContext.getSystemService(Context.CONNECTIVITY_SERVICE);
خب برای فهم کد بالا خیلی ساده بهش نگاه میکنیم. ابتدا Context تعریف کردیم و همانطور که قبلا گفتم این کلاس میشه گفت وضعیت کنونی رو به ما برمیگردونه. یک نمونه ازش گرفتم و مقدار اولیه اون رو برابر null گذاشتم.
بعد از آن از کلاس ConnectivityManager استفاده کردم. این کلاس مدیریتی از اتصالات دستگاه رو به ما میده. یک نمونه ازش گرفتم. برای مقدار دهی دقیقا این رو گفتم: "از وضعیت کنونی دستگاه، سرویس Connectivity رو از وضعیت دستگاه گرفته و اون رو بعنوان یک سیستم سرویس به من بده"
متد getSystemService، یک متد از context هست که یک ورودی میگیره و در نهایت با توجه به ورودی که بهش میدیم به ما اون سرویس رومیده. توجه کنید که خروجی این متد از نوع Object هست. پس باید از Cast کردن استفاده کنیم تا بتونیم مقدارش رو در connectMngr ذخیره کنیم:
ConnectivityManager connectMngr = (ConnectivityManager) myContext.getSystemService(Context.CONNECTIVITY_SERVICE);
خب تا الان ما تمام سرویس های Connect رو داخل connectMngr داریم. اما ما تنها الان اطلاعاتی از شبکه رو لازم داریم. که به این میگند NetworkInfo. پس کافیه کد زیر رو بنویسید تا از connectMngr اطلاعات شبکه رو گرفته و داخل یک شی از NetworkInfo ذخیره کنه:
NetworkInfo netInfo = connectMngr.getActiveNetworkInfo();
خب حالا برای بررسی شرط اتصال به اینترنت داخل متد Onclick کد زیر رو بنویسید:
if(netInfo == null || netInfo.isAvailable() == false || netInfo.isConnected() == false){
Toast.makeText(getApplicationContext(),"No Internet!",Toast.LENGTH_LONG);
}
اول از همه جهت یاداوری دوستان جهت بررسی یک شرط در جاوا (بیس اندروید) از if استفاده میکنیم.
If(some condition)
{ Do something }
جهت بررسی یک شرط در جاوا از if استفاده میکنیم و شرط مورد نظر داخل پرانتز قرار داده میشود. سپس بررسی میکنیم اگر شرطی برقرار است کارهای مورد نظر ما داخل {} نوشته میشود.
شرطهایی که بررسی کردیم
1)netInfo == null : اگر هیچ شبکه ای موجور نیست.
2)netInfo.isAvailable() == false: یعنی اگر شبکه فعال نیست
3)netInfo.isConnected() == false: یعنی اگر شبکه متصل نیست
این نکته رو هم بگم که در شرط ها اگر بین چند شرط "یا" برقرار بود یعنی در نظر داشتیم یکی از شرطها هم حتی اگر برقرار بود عملیات ما انجام شود، بین آنها علامت || میگذاریم.
همچنین اگر مورد نظر ما بود که تمام شرطها حتما برقرار باشند همزمان تا کاری را انجام دهیم، بین آنها && میگذاریم.
در اخر اینکه در بررسی شرطها علامت تساوی (آیا مساوی بودن!؟)
بصورت == قرار داده میشود
برای انجام هرکار با اینترنت جهت جلوگیری از خطاهای احتمالی ابتدا باید بررسی کنیم ایا دستگاه به اینترنت متصل هست یا نه. پس در اکتیویتی در ابتدا دو کد زیر رو بنویسید.
Context myContext = null;
ConnectivityManager connectMngr = myContext.getSystemService(Context.CONNECTIVITY_SERVICE);
خب برای فهم کد بالا خیلی ساده بهش نگاه میکنیم. ابتدا Context تعریف کردیم و همانطور که قبلا گفتم این کلاس میشه گفت وضعیت کنونی رو به ما برمیگردونه. یک نمونه ازش گرفتم و مقدار اولیه اون رو برابر null گذاشتم.
بعد از آن از کلاس ConnectivityManager استفاده کردم. این کلاس مدیریتی از اتصالات دستگاه رو به ما میده. یک نمونه ازش گرفتم. برای مقدار دهی دقیقا این رو گفتم: "از وضعیت کنونی دستگاه، سرویس Connectivity رو از وضعیت دستگاه گرفته و اون رو بعنوان یک سیستم سرویس به من بده"
متد getSystemService، یک متد از context هست که یک ورودی میگیره و در نهایت با توجه به ورودی که بهش میدیم به ما اون سرویس رومیده. توجه کنید که خروجی این متد از نوع Object هست. پس باید از Cast کردن استفاده کنیم تا بتونیم مقدارش رو در connectMngr ذخیره کنیم:
ConnectivityManager connectMngr = (ConnectivityManager) myContext.getSystemService(Context.CONNECTIVITY_SERVICE);
خب تا الان ما تمام سرویس های Connect رو داخل connectMngr داریم. اما ما تنها الان اطلاعاتی از شبکه رو لازم داریم. که به این میگند NetworkInfo. پس کافیه کد زیر رو بنویسید تا از connectMngr اطلاعات شبکه رو گرفته و داخل یک شی از NetworkInfo ذخیره کنه:
NetworkInfo netInfo = connectMngr.getActiveNetworkInfo();
خب حالا برای بررسی شرط اتصال به اینترنت داخل متد Onclick کد زیر رو بنویسید:
if(netInfo == null || netInfo.isAvailable() == false || netInfo.isConnected() == false){
Toast.makeText(getApplicationContext(),"No Internet!",Toast.LENGTH_LONG);
}
اول از همه جهت یاداوری دوستان جهت بررسی یک شرط در جاوا (بیس اندروید) از if استفاده میکنیم.
If(some condition)
{ Do something }
جهت بررسی یک شرط در جاوا از if استفاده میکنیم و شرط مورد نظر داخل پرانتز قرار داده میشود. سپس بررسی میکنیم اگر شرطی برقرار است کارهای مورد نظر ما داخل {} نوشته میشود.
شرطهایی که بررسی کردیم
1)netInfo == null : اگر هیچ شبکه ای موجور نیست.
2)netInfo.isAvailable() == false: یعنی اگر شبکه فعال نیست
3)netInfo.isConnected() == false: یعنی اگر شبکه متصل نیست
این نکته رو هم بگم که در شرط ها اگر بین چند شرط "یا" برقرار بود یعنی در نظر داشتیم یکی از شرطها هم حتی اگر برقرار بود عملیات ما انجام شود، بین آنها علامت || میگذاریم.
همچنین اگر مورد نظر ما بود که تمام شرطها حتما برقرار باشند همزمان تا کاری را انجام دهیم، بین آنها && میگذاریم.
در اخر اینکه در بررسی شرطها علامت تساوی (آیا مساوی بودن!؟)
بصورت == قرار داده میشود
خب حالا بعد از بررسی شرط ها میخواهیم بگیم اگر یکی از اینها هم برقرار بود یعنی اینترنت متصل نیست، پس پیامی رو به کاربر نشون دادیم.
خب درغیر اینصورت اینترنت وصل هست پس میشه صفحه اینترنت رو باز کنیم.
حالا کد زیر رو اضافه کنید:
else {
Toast.makeText(getApplicationContext(),"You are Connectedd",Toast.LENGTH_LONG);
}
زمانی که شرطی رو بررسی میکنیم و میخوایم بگیم اگر if مطرح شده برقرار نبود در غیر اینصورت چکاری انجام بده، از else استفاده میکنیم.
فعلا داخل else نوشتم یک پیام نشون بده که به اینترنت متصل هستید.
2-1) تنها چیزی که نباید فراموش بشود اجازه گرفتن از کاربر هست. که میخواهیم از اینترنت اون فرد استفاده کنیم. این permission ها رو در manifest قرار بدید.
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
کافی هست از برنامتون اجرا بگیرید و تست کنید.
1-3)حالا در این مرحله باید داخل else صفحه مورد نظر را باز کنیم. اگر به یاد داشته باشید intent ها درخواست ما از اندروید بودند. درحال حاضر ما درخواست باز کردن یک صفحه وب رو داریم. از کد زیر استفاده میکنیم:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(intent);
این نوع خاصی از intent هست. ورودی اول نوعش رو مشخص کرده و ورودی دوم یک متد هست به نام Parse. این متد در کلاس Uri قرار دارد. یک ورودی رشته ای (string) گرفته و اون رو تبدیل به یک uri معتبر میکند. در اخر هم Intent خود رو اجرا کردیم.
خب درغیر اینصورت اینترنت وصل هست پس میشه صفحه اینترنت رو باز کنیم.
حالا کد زیر رو اضافه کنید:
else {
Toast.makeText(getApplicationContext(),"You are Connectedd",Toast.LENGTH_LONG);
}
زمانی که شرطی رو بررسی میکنیم و میخوایم بگیم اگر if مطرح شده برقرار نبود در غیر اینصورت چکاری انجام بده، از else استفاده میکنیم.
فعلا داخل else نوشتم یک پیام نشون بده که به اینترنت متصل هستید.
2-1) تنها چیزی که نباید فراموش بشود اجازه گرفتن از کاربر هست. که میخواهیم از اینترنت اون فرد استفاده کنیم. این permission ها رو در manifest قرار بدید.
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
کافی هست از برنامتون اجرا بگیرید و تست کنید.
1-3)حالا در این مرحله باید داخل else صفحه مورد نظر را باز کنیم. اگر به یاد داشته باشید intent ها درخواست ما از اندروید بودند. درحال حاضر ما درخواست باز کردن یک صفحه وب رو داریم. از کد زیر استفاده میکنیم:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(intent);
این نوع خاصی از intent هست. ورودی اول نوعش رو مشخص کرده و ورودی دوم یک متد هست به نام Parse. این متد در کلاس Uri قرار دارد. یک ورودی رشته ای (string) گرفته و اون رو تبدیل به یک uri معتبر میکند. در اخر هم Intent خود رو اجرا کردیم.