কীভাবে এসএসএইচের জন্য রাস্পবেরি পাইয়ের আইপি ঠিকানা পাবেন


11

আমি এসএসএইচ এর মাধ্যমে আমার পাই অ্যাক্সেস করতে ম্যাক ওএসএক্স ব্যবহার করছি। এটি অ্যাক্সেস করতে, আমি জানি যে পাই এর আইপি ঠিকানাটি আমার দরকার। সুতরাং, আমি কয়েকটি পাইথন কমান্ড ব্যবহার করার সিদ্ধান্ত নিয়েছি যা সর্বদা আমাকে স্থানীয় আইপি দিতে সফল হয়েছে।

import socket
host_name = socket.gethostname()
host_ip = socket.gethostbyname(host_name)
print host_ip

অদ্ভুতভাবে যথেষ্ট, আমি কেবল স্থানীয় হোস্ট আইপি (127.0.1.1) পেয়েছি।

কেউ দয়া করে আমাকে কীভাবে সঠিক স্থানীয় / গ্লোবাল পেতে পারেন (যেটি ভাল, এটির জন্য এখনই ল্যানের মাধ্যমে কাজ করা দরকার) পি আই?


1
আপনি কি এটিকে গুগল করার চেষ্টা করেছেন?
আলেকজান্ডার - মনিকা পুনরায় ইনস্টল করুন

কটাক্ষপাত আছে lsleases , [1] [আইপি এড্রেস জেনে রাস্পবেরী Pi মধ্যে, SSH] এর জন্য আমার উত্তর দেখুন। [1]: raspberrypi.stackexchange.com/
প্রশ্নগুলি

আপনি কি পাই এর নিজের ঠিকানা পাওয়ার জন্য চেষ্টা করছেন? এটি কীভাবে sshএটি আপনাকে সহায়তা করে? নিশ্চয়ই তোমার আগে IP ঠিকানা প্রয়োজন ssh
ctrl-alt-delor

উত্তর:


12

: পাইথন একটি আবশ্যক হয়, তাহলে আপনি এই আর্টিকেল পরীক্ষা করতে পারবেন http://code.activestate.com/recipes/439094-get-the-ip-address-associated-with-a-network-inter/

তারা যথাযথভাবে নির্দেশ করে যে কোনও কম্পিউটারে নেটওয়ার্ক ইন্টারফেসের মতো অনেকগুলি আইপি ঠিকানা রয়েছে।

নেটওয়ার্ক অ্যাডাপ্টারের আইপি ঠিকানা পেতে তাদের কোডটি এখানে রয়েছে, আমি কোডটি পরীক্ষা করেছি এবং এটি কাজ করে:

import socket
import fcntl
import struct

def get_ip_address(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(
        s.fileno(),
        0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])

print get_ip_address('lo')
print get_ip_address('eth0')

আপনার আরপিআই যদি ওয়াইফাইয়ের মাধ্যমে সংযুক্ত থাকে তবে অ্যাডাপ্টারের নাম হওয়া উচিত wlan0

অন্যথায় আপনি ipকমান্ডটি সহ এটি পেতে পারেন :

ip addr show eth0 | grep inet

আপনার মতো কিছু পাওয়া উচিত:

inet 192.168.0.140/24 brd ....

এটি আপনার আইপি ঠিকানা।

অবশ্যই আপনি আরপিআই বুট আপ করেন এবং আইপি ঠিকানা জানেন না বলে এটির সাথে সংযোগ স্থাপন করতে না পারলে এর কোনওটিই কাজ করবে না! যদি 'কেসটি হয় তবে আপনার ডিএইচসিপি সার্ভার অবশ্যই আপনাকে বলতে পারে যে তিনি কেবলমাত্র আরপিআইকে কোন আইপি ঠিকানা দিয়েছেন (বা আপনি কেবল তাদের সবগুলি চেষ্টা করে :))

এটি বলেছিল, আপনার নামটি দিয়ে আরপিআইকে উল্লেখ করে আপনি উপকার পেতে পারেন এবং যেহেতু আপনি একটি ম্যাক ব্যবহার করছেন, সম্ভবত সবচেয়ে ভাল সমাধান হ'ল অহি-ডেমন ইনস্টল করা:

sudo apt-get install avahi-daemon

যা অ্যাপল জেরোকনফ স্পেসিফিকেশন (বনজোরের মতো) প্রয়োগ করে। তারপরে আপনি নামটি দিয়ে আপনার আরপিআইতে এসএসএস করতে পারেন:

ssh pi@raspberry.local

আমি আমার দুটি রাস্পবেরি ( যিগড্র্যাসিল এবং ডালভালিন নামে পরিচিত ) জন্য আলাদা পদ্ধতির ব্যবহার করেছি: আমি একটি নির্দিষ্ট আইপি বেছে নিয়েছি (192.168.0.140 এবং 192.168.0.142) তাই আমি আমার অন্যান্য কিছু মেশিনেও ইত্যাদি / হোস্ট ফাইল ব্যবহার করতে পারি।

আমি কোনও অভ্যন্তরীণ ডিএনএস স্থাপন করতে পারি বা বিজয়ের উপর নির্ভর করতে পারি তবে বর্তমান সমাধানটি আমার পক্ষে কাজ করে।


হাই রেমো, বিস্তারিতভাবে এটি ব্যাখ্যা করার জন্য ধন্যবাদ। আমি আপনাকে রাথ পাই 3 তে অজগর 3.5 তে কোড ব্যবহার করার চেষ্টা করেছি It এটি কাজ করে না এবং একটি রানটাইম ত্রুটির ফলস্বরূপ। "কাঠামো.অররর: 'র' এর পক্ষে যুক্তি অবশ্যই বাইটস অবজেক্ট হতে হবে"
অমিত রাই শর্মা

আমি বিশ্বাস করি এটি ssh pi@raspberrypi.localকোনও আরপিআইর জন্য ডিফল্ট হোস্টনাম দেওয়া উচিত raspberrypi। দেবিয়ান বিশ্বজুড়ে কেন আাহি-ডেমন সর্বজনীনভাবে ইনস্টল করা হয়নি তা আমার বাইরে is অ্যাড-হক নেটওয়ার্কগুলি যখন স্বপ্নের বাইরে চলে যায় তখন স্বপ্ন are
রাফটারি 14'19

আমার আগের মন্তব্যের বিপরীতে, এখন পর্যন্ত (মে 19) সর্বশেষতম রাস্পবিয়ান (এপ্রিল 19) তে, রাস্পবেরিপি.লোকাল রেজোলিউশন এবং 169.254.xx উভয়ই বক্সের বাইরে কনফিগারেশন ছাড়াই অটো-অ্যাসাইনমেন্ট কাজ করে!
রাফারি

2

এই কোড:

import socket
import fcntl
import struct

def get_ip_address(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(
        s.fileno(),
        0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])

print get_ip_address('lo')
print get_ip_address('eth0')

কেবল অজগর ২.7 এর অধীনে কাজ করে, অজগর 3 নিয়ে এটি কাজ করে না, আপনি ত্রুটি পাবেন যে 'এর' পক্ষে যুক্তিটি বাইট অবজেক্ট হতে হবে ...


উত্তরটি প্রশ্নের জন্য কী সহায়তা করে? আপনার কি এমন সংস্করণ রয়েছে যা এর অধীনে কাজ করে python3?
ইনগো

0

কীভাবে ওএস সেট আপ হয় তার উপর নির্ভর করে সকেট লোকালহোস্ট ফিরিয়ে দিতে পারে। সুতরাং এটি বহনযোগ্য নয়।

পাইথনের মাধ্যমে আইপি পাওয়ার বিষয়ে এই স্ট্যাকওভারফ্লো উত্তরটি সহায়ক it এটি / ইত্যাদি / হোস্টগুলির সাথে সমস্যাটি ব্যাখ্যা করে এবং একটি শালীন কাজ দেয়। এটি নিখুঁত নয় (আইপিভি 6), এবং আপনার বেশ কয়েকটি বাউন্ড আইপি থাকলে এটি রাউটেবল সংস্করণটি নাও পেতে পারে তবে আপনার প্রয়োজনের জন্য এটি একটি ভাল অনেলাইনার in

কমান্ডলাইন থেকে, ifconfigআপনার বন্ধু। এটি সাধারণত আপনার সমস্ত আবদ্ধ ইন্টারফেস এবং এ জাতীয় তালিকাবদ্ধ করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.