树莓派3开机自动注册IP

 

如果要通过SSH2连接到树莓派,那么首先要获取到IP地址,如果没有连接显示器,把树莓派接入另一个网络时,如果不能登录到路由器去查看IP,那么要获取IP地址是比较麻烦的。

1.方案

  在局域网内,实现树莓派开机自动寻找注册服务器,并把IP信息注册到服务器上。树莓派和服务器在同一个网段内,树莓派在开机时,启动注册程序,根据自己的IP段,尝试访问服务器地址,如果成功,则IP会注册到服务器上。

2.服务器端程序

   采用spring boot便于直接运行服务器。

   源码:https://github.com/gjq246/RaspBerryIP/tree/master

   通过maven install打包成jar

     运行: java -jar RaspBerryIp.jar

     image

     浏览器输入http://127.0.0.1:8008/

     image

 

3.树莓派端程序

    reg.py:

   

# -*- coding: UTF-8 -*-
import socket
import urllib,urllib2
import os
import threading
import time

def get_host_ip():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('8.8.8.8', 80))
        ip = s.getsockname()[0]
    finally:
        s.close()
    return ip

#获取主机名
myname = socket.getfqdn(socket.gethostname())
print myname
#获取IP
ip=get_host_ip()
print ip
iparr=ip.split('.')
print iparr[0]+'.'+iparr[1]+'.'+iparr[2]+'.'

#构造参数
textmod ={'DeviceName':myname}
textmod = urllib.urlencode(textmod)

def ddos(u):
        try:
          req = urllib2.urlopen(u).read()  
          print req   
          print str(threading.activeCount()) + ' :'+str(req.code)+' :' + time.ctime()
        except:
          err='error:'+str(threading.activeCount())
          #print 'error:'+str(threading.activeCount())
#多线程运行
for i in range(2,255):
        url='http://'+iparr[0]+'.'+iparr[1]+'.'+iparr[2]+'.'+str(i)+':8008/reg.action?'+textmod
        print url
        t=threading.Thread(target=ddos,args=(url,))
        t.start()
        time.sleep(0.05)

 

 

把上面的程序加入开机自启动。

 

 

在服务器上即可看到:

image

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值