在一个风和日丽的下午,我同事突然问我ENSP和本地PC怎么上传和下载文件?我本以为这个很简单,然后我开始了面向百度编程,但是网上的大多数都是ENSP里面的路由器、服务器和PC间的FTP实验,而不是到本地(现实)PC的实验,所以做完该实验后的我选择第一时间来这进行分享!

路由器充当服务器,本地PC充当客户端。


(第二张ENSP的网卡是本地的虚拟网卡,不会创建的可以面向百度编程)
interface GigabitEthernet0/0/0
ip address 192.168.153.100 255.255.255.0 //和本地虚拟网卡同网段即可
验证:
路由器ping本地PC:
<R1>ping 192.168.153.1
PING 192.168.153.1: 56 data bytes, press CTRL_C to break
Reply from 192.168.153.1: bytes=56 Sequence=1 ttl=128 time=10 ms
Reply from 192.168.153.1: bytes=56 Sequence=2 ttl=128 time=10 ms
Reply from 192.168.153.1: bytes=56 Sequence=3 ttl=128 time=10 ms
Reply from 192.168.153.1: bytes=56 Sequence=4 ttl=128 time=30 ms
Reply from 192.168.153.1: bytes=56 Sequence=5 ttl=128 time=10 ms
--- 192.168.153.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 10/14/30 ms
本地PCping路由器:
C:\Users\33790>ping 192.168.153.100
正在 Ping 192.168.153.100 具有 32 字节的数据:
来自 192.168.153.100 的回复: 字节=32 时间=15ms TTL=255
来自 192.168.153.100 的回复: 字节=32 时间=12ms TTL=255
来自 192.168.153.100 的回复: 字节=32 时间=13ms TTL=255
来自 192.168.153.100 的回复: 字节=32 时间=6ms TTL=255
192.168.153.100 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 6ms,最长 = 15ms,平均 = 11ms
[R1]ftp server enable //开启ftp服务
[R1]aaa //配置aaa认证
local-user admin password cipher %$%$z@o%/BpB>5NeTuA-Ch((aJ<{%$%$ //账号admin密码admin
local-user admin privilege level 15 //admin的权限15
local-user admin service-type ftp //admin应用于ftp服务
local-user admin ftp-directory flash:/ //提供ftp服务的目录

查看路由器的ftp目录
ftp> dir
200 Port command okay.
150 Opening ASCII mode data connection for *.
drwxrwxrwx 1 noone nogroup 0 Dec 23 09:49 dhcp
-rwxrwxrwx 1 noone nogroup 121802 May 26 2014 portalpage.zip
-rwxrwxrwx 1 noone nogroup 2263 Dec 23 09:49 statemach.efs
-rwxrwxrwx 1 noone nogroup 828482 May 26 2014 sslvpn.zip
drwxrwxrwx 1 noone nogroup 0 Dec 23 09:49 .
226 Transfer complete.
ftp: 收到 330 字节,用时 0.01秒 33.00千字节/秒。
本地PC上传文件至路由器
ftp> put 1.txt //上传1.txt的文件
200 Port command okay.
150 Opening ASCII mode data connection for 1.txt.
226 Transfer complete.
ftp> dir //查看路由器的ftp目录
200 Port command okay.
150 Opening ASCII mode data connection for *.
-rwxrwxrwx 1 noone nogroup 0 Dec 23 10:15 1.txt //可以看到该文件已经上传成功
drwxrwxrwx 1 noone nogroup 0 Dec 23 09:49 dhcp
-rwxrwxrwx 1 noone nogroup 121802 May 26 2014 portalpage.zip
-rwxrwxrwx 1 noone nogroup 2263 Dec 23 09:49 statemach.efs
-rwxrwxrwx 1 noone nogroup 828482 May 26 2014 sslvpn.zip
drwxrwxrwx 1 noone nogroup 0 Dec 23 10:15 .
226 Transfer complete.
ftp: 收到 392 字节,用时 0.02秒 24.50千字节/秒。
本地PC下载路由器的文件
ftp> get sslvpn.zip //下载sslvpn.zip的文件
200 Port command okay.
150 Opening ASCII mode data connection for sslvpn.zip.
226 Transfer complete.
ftp: 收到 828482 字节,用时 1.67秒 496.39千字节/秒。
C:\Users\33790>dir //查看本地PC的目录
2022/10/15 周六 17:27 <DIR> Saved Games
2022/01/03 周一 19:11 <DIR> Searches
2021/10/19 周二 23:07 <DIR> source
2022/12/23 周五 18:16 828,482 sslvpn.zip //可以看到该文件已经下载成功
2022/03/07 周一 16:01 <DIR> TEMP
2019/11/14 周四 13:39 <DIR> UIDowner
2022/01/09 周日 15:52 <DIR> Videos
本地PC充当服务器,路由器充当客户端。
以上两步参考实验一
用其他的ftp软件也可以

<R1>ftp 192.168.153.1
Trying 192.168.153.1 ...
Press CTRL+K to abort
Connected to 192.168.153.1.
220 3Com 3CDaemon FTP 服务器版本 2.0
User(192.168.153.1:(none)):huawei
331 用户名正确, 需要口令
Enter password:
230 用户已登录
查看本地PC的ftp目录
[R1-ftp]dir
200 PORT 命令成功 .
150 文件状态正常; 准备启动数据连接
-rwxrwxrwx 1 owner group 0 Dec 23 18:23 2.txt
路由器下载本地PC的文件
[R1-ftp]get 2.txt //下载2.txt的文件
200 PORT 命令成功 .
150 文件状态正常; 准备启动数据连接
226 正在关闭数据连接; 文件传输成功完成.
FTP: 0 byte(s) received in 0.140 second(s) 0.00byte(s)/sec.
<R1>dir //查看路由器的目录
Directory of flash:/
Idx Attr Size(Byte) Date Time(LMT) FileName
0 -rw- 0 Dec 23 2022 10:15:13 1.txt
1 drw- - Dec 23 2022 09:49:59 dhcp
2 -rw- 121,802 May 26 2014 09:20:58 portalpage.zip
3 -rw- 2,263 Dec 23 2022 09:49:54 statemach.efs
4 -rw- 828,482 May 26 2014 09:20:58 sslvpn.zip
5 -rw- 0 Dec 23 2022 10:30:17 2.txt //可以看到该文件已经下载成功
路由器上传文件至本地PC
[R1-ftp]put sslvpn.zip //上传sslvpn.zip的文件
200 PORT 命令成功 .
150 文件状态正常; 准备启动数据连接
1% 3% 5% 7% 9%11%13%15%17%19%21%23%25%27%29%31%33%35%37%39%
41%43%45%47%49%51%53%55%57%59%61%63%65%67%69%71%73%75%77%79%
81%83%85%87%88%90%92%94%96%98%
100%
226 正在关闭数据连接; 文件传输成功完成.
FTP: 828482 byte(s) sent in 1.900 second(s) 436.04Kbyte(s)/sec.
C:\Users\33790>dir //查看本地PC的目录
2022/10/15 周六 17:27 <DIR> Saved Games
2022/01/03 周一 19:11 <DIR> Searches
2021/10/19 周二 23:07 <DIR> source
2022/12/23 周五 18:33 828,482 sslvpn.zip //可以看到该文件已经上传成功
2022/03/07 周一 16:01 <DIR> TEMP
2019/11/14 周四 13:39 <DIR> UIDowner
2022/01/09 周日 15:52 <DIR> Videos
到这里这个实验就结束了,希望能够帮到大家!
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI
我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use
我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle
Rails中有没有一种方法可以提取与路由关联的HTTP动词?例如,给定这样的路线:将“users”匹配到:“users#show”,通过:[:get,:post]我能实现这样的目标吗?users_path.respond_to?(:get)(显然#respond_to不是正确的方法)我最接近的是通过执行以下操作,但它似乎并不令人满意。Rails.application.routes.routes.named_routes["users"].constraints[:request_method]#=>/^GET$/对于上下文,我有一个设置cookie然后执行redirect_to:ba
路由有如下代码:resources:orders,only:[:create],defaults:{format:'json'}resources:users,only:[:create,:update],defaults:{format:'json'}resources:delivery_types,only:[:index],defaults:{format:'json'}resources:time_corrections,only:[:index],defaults:{format:'json'}是否可以使用1个字符串为所有资源设置默认格式,每行不带“默认值”散列?谢谢。
我的Rails站点使用了一个确实不是很好的gem。每次我需要做一些新的事情时,我最终不得不花费与向实际Rails项目添加代码一样多的时间来为gem添加功能。但我不介意,我将我的Gemfile设置为指向我的gem的GitHub分支(我尝试提交PR,但维护者似乎已经下台)。问题是我真的没有找到一种合理的方法来测试我添加到gem的新东西。在railsc中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo。rb,这看起来不对或者b)升级版本,推送到Github,然后运行bundleup,这除了耗时之外显然是一场灾难,因为我不确定我所做的promise是否正
是否有与FTP服务器交互的高级Ruby库?我可以使用HTTParty、Curb、RestClient或Typhoeus代替Net::HTTP,这使一切变得更容易,但我找不到任何类似的解决方案来替换/增强Net::FTP。更具体地说,我正在寻找:连接到服务器的线路最少。例如,必须使用Net::FTP显式指定登录名能够遍历一个文件夹中的所有条目,或者使用glob,或者只是递归。能够获取所有可能的信息,例如条目类型、大小、mtime,而无需手动解析返回的行。 最佳答案 Ruby的内置OpenURI将处理FTP。来自OpenURI的文档:O