درخواست اسکریپت

python

#1

سلام.دوستان دوتا اسکریپت میخوام بنویسم تا با اسکریپت نویسی آشنا بشم و …

یک اسکریپت میخوام بنویسم وقتی که سیستم بوت شد و به اینترنت وصل شد ip public سیستم رو بگیره و برای خودم ایمیل کنه.

و یک اسکریپت دیگه میخوام بنویسم وقتی که شخصی به سیستمم ssh کرد. یک ایمیل هشدار برام ارسال بشه.

ممنون میشم در این موضوع کمک کنید تا با نحوه کد زدن و … آشنا بشم.
اگر هم ویدیو یا سایتی چه فارسی و انگلیسی برای آموزش دارید اینجا بزارید. یا سایت های رایگانی که اسکریپت همراه با توضیح میزارن رو بزارید ممنون میشم


#2

سلام.

چه اسکریپتی؟ اسکریپت shell؟ یا مثلا python؟


اسکریپتی که میخواید ip رو بگیره و به یه جا ارسال کنه، میتونه خیلی خفنتر از این حرفا باشه.
این اسکریپت معمولا برای DDNS استفاده میشه (به این روش که بعد از اتصال به اینترنت، هر چند دقیقه یک بار ip رو چک میکنه و بعد میفرسته به یه سروری که DNS دامنه رو روی ip جدید تغییر بده. (یه پروژه‌ی اینطوری نوشته بودم قبلا. با پایتون)

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


نکته درمورد اسکریپت اول.
سیستم خودش نمیتونه بفهمه که ip چی هست. صرفا ip لوکال خودش رو میبینه (ip که به وسیله‌ی اون میتونن توی شبکه‌ی لوکال بهش وصل بشن) مثلا لپتاپ من 192.168.1.13 هست ولی ip جهانی من 51.38.123.39 هست.
برای گرفتن ip جهانی، باید به یه سرور ریکوئست بزنیم و اون سرور بهمون بگه ریکوئست ما از کدوم ip براش ارسال شده. خودمون به تنهایی نمیتونیم بفهمیم.
من برای گرفتن ip از سرویس http://icanhazip.com استفاده میکنم. کسانی که سرور کانفیگ میکنن و میخوان بدونن ip سرورشون چی هست که از یه کامپیوتر دیگه بتونن بهش ssh بزن هم با این کامند:

curl icanhazip.com

آی پی خودشون رو میگیرن.

این سرویس رایگان هست و با دونیتهای مردمی نگهداری میشه. پس نباید زیاد بهش ریکوئست بزنیم که باعث خرابی سرور یا فشار به سرور بشه.
پس پیشنهاد میکنم اگه خودتون یه سرور (یا هاست) دارید، یه اسکریپت ساده روی اون سرور پیاده کنید که وقتی بهش ریکوئست میزنید، ip سیستمتون (کامپیوتری که ریکوئست میزنه) رو بهتون بده.

مثلا کد phpش میشه این:

<?php
echo $_SERVER['REMOTE_ADDR'];
?>

و اگر پشت پراکسی هستید و میخواید ip واقعی رو بگیرید میشه این:

<?php
echo $_SERVER['HTTP_X_FORWARDED_FOR'];
?>

این کد میتونه روی یه هاست اشتراکی (با هزینه‌ی سالانه ۳۰هزارتومن) نگهداری بشه.


#3

مرسی از توضیح خوبتون. اشتباه تایپی بود منظورم ssh هستش.

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


#4

اسکریپتی که با پایتون بنویسم


#5

خوب اصلا کار راحتی نیست.
یعنی پروژه‌ای نیست که برای یادگیری برنامه نویسی بریم سراغش. چون چیزهای خیلی زیادی توش درگیره.
مثلا برای اینکه لاگینهای ssh رو بگیریم (اگه اشتباه نکنم) باید توی این فایل بگردیم: /var/log/auth.log
و خوندن (و پردازش) فایل کار راحتی نیست (برای کسی که شروع به برنامه نویسی کرده)
و تا جایی که میدونم لاگ کامل ثبت نمیشه داخلش و برای اینکه بتونیم لاگ کامل از ssh بگیریم، باید stop کنیم و یه بار به صورت دستی (بدون استفاده از systemctl یا systemd) استارت کنیم با آرگومان -d.

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