Browse Source

增加命令行配置功能

master
453530270@qq.com 2 years ago
parent
commit
e376f7db48
  1. 49
      fss/config/config.go
  2. 6
      fss/core/serverinfo.go
  3. 34
      fss/main.go
  4. 2
      fss/www/index.html

49
fss/config/config.go

@ -0,0 +1,49 @@
package config
import (
"fmt"
"net"
)
type Config struct {
DeviceName string
Port string
LocalIP string
FilePath string
Version string
}
var G Config
// 本地ip
func getLocalIP() (string, error) {
addrs, err := net.InterfaceAddrs()
if err != nil {
return "", err
}
var ips []string
for _, address := range addrs {
if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
if ipnet.IP.To4() != nil {
ips = append(ips, ipnet.IP.String())
}
}
}
if len(ips) == 0 {
return "", fmt.Errorf("get local ip failed")
} else if len(ips) == 1 {
return ips[0], nil
} else {
// Select the one connected to the network
// when there are multiple network interfaces
// Is there a better way?
c, err := net.Dial("udp", "8.8.8.8:80")
if err != nil {
return ips[0], nil
}
defer c.Close()
return c.LocalAddr().(*net.UDPAddr).IP.String(), nil
}
}

6
fss/core/serverinfo.go

@ -38,6 +38,12 @@ var Gpath string
// 遍历监视目录,发送到json中
func SerInfo(w http.ResponseWriter, r *http.Request) {
//取到运行的目录
Gpath, err := os.Getwd()
if err != nil {
return
}
// 监听的目录通过?p=的方式传入
urlpath := r.URL.Query().Get("p")
// 防止逃逸,造成漏洞

34
fss/main.go

@ -2,13 +2,15 @@ package main
import (
"fmt"
"fss/config"
"fss/core"
"log"
"net/http"
"os"
)
// 主函数
func main() {
// 启动web服务
func startWeb() {
//创建一个文件服务器,会去www目录下找index.html
fileServer := http.FileServer(http.Dir("./www"))
// 将 "/" 路径映射到文件服务器
@ -22,3 +24,31 @@ func main() {
log.Fatal(err)
}
}
// 主函数
func main() {
// 判断输入
args := os.Args
if args == nil || len(args) < 2 {
fmt.Printf("Usage: ./fss -t /home/\n")
os.Exit(1)
}
//
flag := args[1]
if flag == "-t" {
wkdir := args[2]
// 赋值给全局
config.G.FilePath = wkdir
} else {
//
curdir, err := os.Getwd()
if err != nil {
fmt.Printf("initlizer faild %v", err)
}
// current work directory
config.G.FilePath = curdir
}
// web service
startWeb()
}

2
fss/www/index.html

@ -103,8 +103,6 @@
<!-- Default panel contents -->
<div class="panel-heading">源站(192.168.66.100)</div>
<div class="panel-body">
<p>监听目录:/www</p>
<p>相对目录: /app/common </p>
<p>监听目录:<span class="sc01"></span></p>
<p>相对目录: <span class="sc02"></span> </p>
</div>

Loading…
Cancel
Save