উইজেট - কেবলমাত্র রিটার্ন কোড 200 হলে সংরক্ষণ করুন, অন্যথায় মুছুন


3

আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা প্রতি কয়েক মিনিটে আমার সর্বজনীন আইপি ঠিকানাটি পরীক্ষা করে।
সমস্যাটি হ'ল আইএসপি মাঝে মাঝে আমাকে ক্যাশেড পৃষ্ঠাগুলি দেয় (আমি জানি, আমি উইজেটে সম্পর্কিত সমস্ত আরোগুলি ব্যবহার করেছি, আইএসপিটি অদক্ষ ও অতএব একটি গোছা দ্বারা গঠিত যা দৃশ্যত তাদের নিজস্ব দক্ষ-দক্ষ ক্যাশে সার্ভার তৈরি করেছিল) বা আমার নিজের রাউটার দ্বারা তৈরি ত্রুটি পৃষ্ঠাগুলি।
এবং ফলস্বরূপ উইজেট ত্রুটি পৃষ্ঠাটি সংরক্ষণ করে যখন এটি আমার আইপি ঠিকানাটি সংরক্ষণ করবে।

সম্পাদনা:
আমি আইপি ঠিকানায় পরিবর্তনগুলি সনাক্ত করতে কী ব্যবহার করছি
http://paste.debian.net/292602/


3
এটা কোন মানে নেই। উইজেট ইতিমধ্যে ত্রুটি পৃষ্ঠাগুলি ডিফল্টভাবে সংরক্ষণ করে না। এছাড়াও, আপনি কি আপনার সর্বজনীন আইপি ঠিকানা পেতে আলাদা পরিষেবা চেষ্টা করেছেন? কাকতালীয়ভাবে আমি বর্তমানে একটি বিল্ডিং করছি, যা আপনি myip.addr.space/help এ খুঁজে পেতে পারেন । আমি সঠিক ক্যাশে-নিয়ন্ত্রণ শিরোনামগুলি সেট করার চেষ্টা করি, সুতরাং এটি একটি আইএসপির প্রক্সি দিয়ে যাওয়ার উচিত।
মাইকেল হ্যাম্পটন

@ মিশেলহ্যাম্পটন আমি আমার নিজের 78.47.35.18/ip-raw.php লিখেছি , এটি ওয়ান লাইনার <? পিএইচপি প্রতিধ্বনি $ _SERVER ["REMOTE_ADDR"]; ?>
বেহরোজ

@ মিশেলহ্যাম্পটন চমৎকার ডোমেইন, এটির জন্য অবশ্যই অনেক ব্যয় করতে হবে।
বেহরোজ

ব্যবহারকারী এজেন্টের উপর ভিত্তি করে বিভিন্ন প্রতিক্রিয়া। এটা কি ভাল ধারণা? এবং আমি আমার নিজের ব্যবহার করছি কারণ আমি অনুভূত করেছি যে প্রতি 60 সেকেন্ডে কেউ আমার আইপি আনতে চায় না।
বেহরোজ

কেবলমাত্র হোম পৃষ্ঠার জন্য, আপনি লোড করলে আপনি /ipসর্বদা কাঁচা পাঠ্য পাবেন।
মাইকেল হ্যাম্পটন

উত্তর:


3

এই কোড স্নিপেট আপনার সঠিক দিকে নির্দেশ করা উচিত:

wget --server-response 78.47.35.18/ip-raw.php -O ip-current 2>&1| grep -c 'HTTP/1.1 200 OK'
1
is_200_ok=$(wget --server-response 78.47.35.18/ip-raw.php -O ip-current 2>&1| grep -c 'HTTP/1.1 200 OK')

echo $is_200_ok 
1

তবে আমি এর জন্য পাইথন বা পার্ল ব্যবহার করব। এটা আরও সহজ হবে।

এটি আপনার স্ক্রিপ্টে কীভাবে দেখবে:

#!/bin/bash

rm -f ip-current /tmp/ip-message-temp
touch ip-old

is_200_ok=$(wget --server-response 78.47.35.18/ip-blabl.php -O ip-tmp 2>&1| grep -c 'HTTP/1.1 200 OK')

if [ $is_200_ok == 1 ]; then
    mv ip-tmp ip-current
    echo "YES"
else
    echo "Got error instead of IP address :("
    exit 1
fi

সিসলগকে ডাইরেক্টলি লিখতে এড়িয়ে চলুন, লগার ব্যবহার করা আরও ভাল:

NAME
 logger — a shell command interface to the syslog(3) system log module

ধন্যবাদ, দুর্দান্ত পদ্ধতি। মাইকেল হ্যাম্পটন আমাকে আগে আড্ডায় সমস্যা সমাধানে সহায়তা করেছিল। সমাধানটি ছিল আমার রাউটার এনভ্রামে একটি পতাকা পরিবর্তন এবং ব্যবহার করতে - ম্যাক্স-রিডাইরেক্ট 0
বেহরোজ

ঠিক আছে, তবে :) আমি আমার উত্তরটি সম্পাদনা করব।
নাভর

আমি সামান্য অংশে পরিবর্তিত হয়েছি grep -c '200 OK')কারণ পুনঃনির্দেশের ক্ষেত্রে আউটপুটটি এখানে যেমন কিছুটা আলাদা হয়is_200_ok=$(wget "https://github.com/stopwords-iso/stopwords-de/blob/master/stopwords-de.txt?raw=true" -O "stopwords_de_tmp.txt" 2>&1| grep -c '200 OK')
loretoparisi
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.