פקודה בCMD עם נתון המתקבל ב CURL
-
כשאני מתחבר לשרת שלי מחיבור שעוד לא מוגדר כפתוח בחומת האש אני צריך לפתוח אותו בחומת האש.
יש לי פקודה לקבל את הIP ואז פקודה לפתוח אותו בפורט המבוקש.
אני רוצה ליצור קובץ שמריץ את הכל אוטומטי, כאשר במידת הצורך אני מריץ אותו והכל מבוצע לבד.
להלן הפקודות כהיום:curl https://checkip.amazonaws.com
הפקודה מחזירה את הIP שלי.
aws ec2 authorize-security-group-ingress --group-id sg-0534sg83sgba4 --protocol tcp --port 22 --cidr 255.255.255.255/24
פקודה זו היא לפתיחת פורט 22, ואני צריך לבצע את אותה פקודה כדי לפתוח גם את פורט 3306.
לאחר הIP צריך להיות /24 (מי שיודע להסביר למה מוזמן להסביר).
אני רוצה קובץ שאני מקליק עליו והפקודות מבוצעות כולל שילוב הIP בפקודות במיקום הנדרש.
תודה מראש -
FOR /F "tokens=* USEBACKQ" %%F IN (`curl https://checkip.amazonaws.com`) DO ( SET MYIP=%%F ) aws ec2 authorize-security-group-ingress --group-id sg-0534sg83sgba4 --protocol tcp --port 22 --cidr %MYIP%/32 aws ec2 authorize-security-group-ingress --group-id sg-0534sg83sgba4 --protocol tcp --port 3306 --cidr %MYIP%/32
@חוקר אמר בפקודה בCMD עם נתון המתקבל ב CURL:
לאחר הIP צריך להיות /24 (מי שיודע להסביר למה מוזמן להסביר).
זה לא לגמרי נכון, המספר שאחרי ה-IP היא ה-subnet mask (בפורמט CIDR -- CIDR notation) שאומר כמה ביטים מהכתובת רלוונטיים. אם אתה רוצה לאשר כל ה-IP שמ-10.0.0.0 עד 10.0.0.255 תכתוב 10.0.0.0/24 כלומר תתיחס רק ל-24 ביטים (=3 בייטים) הראשונים.
אתה מן הסתם רוצה לאשר רק את הכתובת שלך, אז אתה צריך לשים שם /32 כלומר, כל הביטים חשובים. -
@yossiz אמר בפקודה בCMD עם נתון המתקבל ב CURL:
FOR /F "tokens=* USEBACKQ" %%F IN (
curl https://checkip.amazonaws.com
) DO (
SET MYIP=%%F
)aws ec2 authorize-security-group-ingress --group-id sg-0534sg83sgba4 --protocol tcp --port 22 --cidr %MYIP%/32
aws ec2 authorize-security-group-ingress --group-id sg-0534sg83sgba4 --protocol tcp --port 3306 --cidr %MYIP%/32אגב אם יש לך עצבים גם להסביר למה זה בלולאה (אם הבנתי נכון..) אשמח ללמוד קצת על (ווינדוס)..
-
@חוקר אמר בפקודה בCMD עם נתון המתקבל ב CURL:
אגב אם יש לך עצבים גם להסביר למה זה בלולאה (אם הבנתי נכון..) אשמח ללמוד קצת על (ווינדוס)..
השאלה אם יש לך עצבים... אין שום סיבה נורמלית שזה בלולאה, זה רק בגלל שהשפה של CMD כל כך פרימיטיבית שזו הדרך היחידה לקלוט פלט של פקודה ולעשות איתו משהו...
אמרתי כבר שאתה לא מפסיד הרבה שאתה לא יודע לכתוב פקודות ב-CMD...