Linux कमांड लाइन से वेबसाइट के लिए लॉगिन जानकारी कैसे दर्ज करें


25

मेरा इंटरनेट कनेक्शन विश्वविद्यालय द्वारा प्रदान किया गया है। यह एक उपयोगकर्ता नाम / पासवर्ड संयोजन के लिए सुरक्षित है। इसका मतलब है जब मैं अपना कंप्यूटर शुरू करता हूं, तो मुझे एक वेब ब्राउज़र शुरू करना होगा और एक मनमानी वेबसाइट खोलनी होगी। फिर मुझे एक पृष्ठ पर पुनः निर्देशित किया जाता है, जिसमें (अन्य बातों के अलावा) दो रूप हैं। इनमें मुझे यूजरनेम और पासवर्ड इनपुट करना होगा। मैं फ़ायरफ़ॉक्स (जो पासवर्ड बचा सकता है) और लिंक के साथ भी कर सकता था (जो कि कमांड लाइन से और तेज़ी से लोड होता है)।

क्या बैश स्क्रिप्ट का उपयोग करके लॉगिन प्रक्रिया को स्वचालित करने का कोई तरीका है? यह बूट करते समय लॉगिन करने की अनुमति देता है, ताकि जब मैं एक्स सर्वर शुरू करूं तो यह पहले से ही हो।


1
आप सीधे फार्म की विशेषता से लॉगिन स्क्रिप्ट को कॉल करने में सक्षम हो सकते हैं। ACTIONcurl
टेराडन

कई विश्वविद्यालय एक नेटवर्क भी प्रदान करते हैं जो "एंटरप्राइज ऑथेंटिकेशन" का उपयोग करता है (यानी नेटवर्क कनेक्शन के लिए उपयोगकर्ता नाम / पासवर्ड का उपयोग करने के बजाय, जब तक आप क्रेडेंशियल पूछने के लिए एक पृष्ठ तक पहुंचने का प्रयास नहीं करते हैं)। ऐसे नेटवर्क क्रेडेंशियल्स को स्टोर करने की क्षमता ओएस में बनाई गई है। यह बहुत अधिक सुरक्षित है क्योंकि इसका मतलब है कि दूसरों के लिए आपके कनेक्शन को टटोलना कठिन है। यदि आपका विश्वविद्यालय इसका समर्थन करता है, तो आपको इसे स्विच करना चाहिए।
मोशे काट्ज़

यदि आप लॉग इन करते हैं तो आप उस URL का एक (अज्ञात) उदाहरण दे सकते हैं, जिसे आप रीडायरेक्ट कर सकते हैं। (यहाँ अनाम का अर्थ है कि आप URL से अपना मैक एड्रेस और / या आईपी पता हटा दें। लेकिन विश्वविद्यालय के नाम सहित, बाकी सब छोड़ दें।)
मोशे काटज़

जवाबों:


16

आप इसे कर्ल के साथ आज़मा सकते हैं , आप वेब पेज पर लॉगिन करने के लिए बस इस तरह कर्ल का उपयोग कर सकते हैं:

curl --user name:password http://somesite.com -v 

आप Stackoverflow जवाब से इस तरह से डेटा को वेबसाइट पर पास कर सकते हैं

    curl -b cookies.txt -c cookies.txt --data "Username=xx&Password=xx&Login=Login" [urlthatyour form submits]

अगर आपको लॉग इन करने के बाद एक और कर्ल अनुरोध करना है तो कुकीज़ की जरूरत है, कुकीज़ में सत्र आईडी अगले कर्ल अनुरोध को अधिकृत करने में मदद करेगी।

यदि आप कुकीज़ नहीं चाहते हैं तो आप उपयोग कर सकते हैं

curl --data "Username=xx&Password=xx&Login=Login" [url that your form submits]

आप विशेष कमांड के लिए भी यहां उल्लेख कर सकते हैं


1
मैं अभी इस पर प्रयास करने में सक्षम नहीं हूं, लेकिन मुझे उम्मीद है कि यह केवल तभी काम करेगा जब साइट खोलते समय पासवर्ड के लिए एक संवाद बॉक्स हो। मेरे मामले में सिर्फ दो रूप हैं। एक नाम के लिए और एक पासवर्ड के लिए। मैं इसे स्पष्ट करने के लिए प्रश्न को बदल दूंगा।
टिम

@Tim ने डेटा कैसे पास किया, इसके बारे में बताया कि आम तौर पर आपको यह पता लगाना होगा कि पेज किस पेज से अनुरोध करता है (या पेज का एक्शन वैल्यू)।
ब्लूबरी - विग्नेश ४३०४

यह लग रहा था जैसे कि यह काम कर सकता है, लेकिन दुख की बात है कि यह नहीं हुआ। जब कर्ल के आउटपुट को देखते हुए पता चलता है कि Usernameफ़ील्ड सही मान से भरा हुआ है, लेकिन Passwordफ़ील्ड नहीं है (यह सुरक्षा उपाय के रूप में सही हो सकता है)। मुझे यकीन नहीं है कि सबमिट बटन वास्तव में चालू था। क्या यह मायने रखता है कि किस मूल्य को पारित किया जाता है Login?
टिम

5

अंत में मुझे उपयोग करने के लिए स्वचालित रूप से लॉग इन करने का एक तरीका मिला elinks। यह काम करता है और इसे कॉन्फ़िगर करना भी आसान है!

दो विकल्पों को सेट करने की आवश्यकता है। यह निम्नलिखित पंक्तियों को जोड़कर किया जा सकता है ~/.elinks/elinks.conf(यदि फ़ाइल नहीं है, तो एक बनाएं) या विकल्प संवाद में संबंधित पदों पर मूल्यों को बदलकर elinks:

    # Save username and password for later use
set document.browse.forms.show_formhist = 1
    # Do not ask for confirmation before a form is submitted
set document.browse.forms.confirm_submit = 0

एक स्क्रिप्ट ऑटोलॉगिन के लिए कदम तब हैं:

  • उन दो विकल्पों को सेट करें
  • लॉगिन पेज खोलें elinks, फॉर्म भरें और उन्हें सबमिट करें।
  • बाद में उपयोग के लिए नाम और पासवर्ड याद रखना चुनें।
  • एलिंक बंद करें
  • रन elinks -auto-submit http://somesite.com

बाद की कमांड को आगे उपयोगकर्ता बातचीत के बिना स्वचालित लॉगिन करना चाहिए।

मैं वास्तव में उपयोग timeout 1m elinks -auto-submit http://somesite.com &करता हूं, ताकि मेरे पास हर समय पृष्ठभूमि में चलने वाली एक बेकार एल्कस प्रक्रिया न हो।


3

स्क्रिप्ट करने का एक सरल तरीका सेलेनियम के साथ है ।

आप अपने फ़ायरफ़ॉक्स "टेस्ट रिकॉर्डर" प्लगइन का उपयोग कर सकते हैं अपने आप को नेटवर्क में प्रवेश करने का एक परीक्षण रिकॉर्ड करने के लिए, और फिर परीक्षण वापस खेलें।


0

हां, आपके विश्वविद्यालय के इंटरनेट पर लॉगिन करने का एक बहुत ही सरल तरीका है। आप ' लिंक्स ' वेब ब्राउज़र का उपयोग कर सकते हैं, जो एक पाठ-आधारित ब्राउज़र है, जिसे टर्मिनल पर उपयोग के लिए डिज़ाइन किया गया है। तो, यहाँ तरीका है:

$ echo "username=myname&password=mypassword" | lynx "url of the form" -post_data

जहाँ, ' यूज़रनेम ' फॉर्म में उपयोगकर्ता के नाम के अनुरूप फ़ील्ड का नाम है और पासवर्ड पासवर्ड फ़ील्ड के अनुरूप फ़ील्ड का नाम है और ' myname ' और ' mypassword ' में भरे जाने वाले संबंधित मान हैं फार्म। आप किसी भी ब्राउज़र से 'इंसपेक्ट एलीमेंट' का उपयोग करके फ़ील्ड नाम पा सकते हैं। मैंने ब्लूबेरी के जवाब में निर्देशित के रूप में कर्ल के साथ कोशिश की - Vignesh4303 लेकिन काम नहीं किया।


0

आप अपने ब्राउज़र के लिए एक ऐड-ऑन प्राप्त कर सकते हैं जो सहेजे गए पासवर्ड के साथ वेबसाइटों को लॉग-इन करेगा। मैं ऑटोफ़ुट का उपयोग फ़ायरफ़ॉक्स के साथ करता था। फिर आप एक बार लॉग इन करें और अपनी साख बचाएं, फिर एक स्क्रिप्ट लिखें जो आपके पास है

#!/bin/bash
firefox https://website address goes here

निष्पादित होने पर, यह जाएगा और ऑटो लॉगिन। मैंने कई साइटों के साथ प्रयास किया और यह अच्छी तरह से काम किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.