我想知道如何从 Applescript 中 shell 命令的输出中仅提取某些数据。我希望能够仅通过“ping -o”命令将 IP 地址传递到变量中,如下所示:
do shell script "ping -o " & blockedURL
-- Set the IP to blockedIP --
set blockedIP to ..
Run Code Online (Sandbox Code Playgroud)
但我收到这个:
“PING example.com (192.0.43.10):来自 192.0.43.10 的 56 个数据字节 64 个字节:icmp_seq=0 ttl=239 time=101.587 ms
--- example.com ping 统计数据 --- 发送 1 个数据包,接收 1 个数据包,往返 0.0% 数据包丢失 min/avg/max/stddev = 101.587/101.587/101.587/0.000 ms"
当我执行 ping 命令时,我收到了大量不需要的数据。有什么办法可以只回忆起吗(192.0.43.10)?
我有下一个 php 代码:
<?php
$ip = shell_exec("/sbin/ifconfig | grep 'inet:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'");
echo $ip;
?>
Run Code Online (Sandbox Code Playgroud)
当我从命令行运行它时($php5 ip.php),它工作正常,但是当我从浏览器运行它时,它什么也不显示(http://localhost/ip.php)。
顺便说一句,我正在尝试打印我的 IP 地址,但每当我使用时,$_SERVER['SERVER_ADDR'];我都会得到127.0.0.1.
我处理来自 IP 摄像机的 H.264 RTP 流。我使用的相机将每个 I 帧分割为多个 NAL 单元,每个单元又分割为 RTP 数据包(开始和结束标志决定每个单元的尺寸,而不是帧的尺寸)。
我如何知道帧传输何时完成并且我有足够的数据来解压缩它?由于帧由多个单元组成 - 标志不能用于确定其结束。
我工作过的大多数相机都会将每个帧分割为 RTP 数据包,其中标志确定帧的开始和结束。因此,我从等待结束标志的数据包中解压数据 - 这是一个完整的帧。
我从这台相机获得的 NAL 单元的序列是:
[NAL_UT_SPS] 序列参数集 +
[NAL_UT_PPS] 图片参数集
[NAL_UT_SEI] 补充增强信息
[NAL_UT_IDR_SLICE] I 帧图像数据的第 1 部分
[NAL_UT_IDR_SLICE] I 帧图像数据的第 2 部分
[NAL_UT_IDR_SLICE] I 帧图片数据的第 3 部分
[NAL_UT_SLICE] 第一个 P 帧
[NAL_UT_SLICE] 第二个 P 帧
[NAL_UT_SLICE] 第 3 个 P 帧
...
从这个序列中可以明显看出,我可以将 [NAL_UT_SPS] + [NAL_UT_PPS] + [NAL_UT_SEI] + 3*[NAL_UT_IDR_SLICE] 组合成一个 I 帧,我将在最近将其提供给解码器。但如何确定有多少个图片数据部分呢?当我收到第 #X 部分时,我如何知道它不是序列中的最后一个?
有任何想法吗?
目前我正在使用施耐德电力逻辑电气设备。我想从设备读取数据并在系统中显示该值。到目前为止,我发现了 J2mod、Jamod 和 Modbus4Java 库。我使用了所有modbus4java来连接并获取设备的数据。
实际上我仍然很困惑是否应该创建主端或从端。根据我的理解,该设备将是从站,我的系统将是主站(第一个问题)。
以下是我的设备上的设置。表示设备处于从机模式,协议为Modbus RTU。那么,我需要创建一个使用 ModbusRTU 协议与其通信的主应用程序,对吗?(第二个问题)
下面是我的应用程序作为主站并使用 ModbusRTU 协议的代码
public static void main(String[] args) throws ModbusTransportException, ErrorResponseException {
ModbusFactory factory = new ModbusFactory();
SerialParameters params = new SerialParameters();
params.setCommPortId("COM6");
params.setBaudRate(9600);
params.setDataBits(8);
params.setStopBits(1);
params.setParity(0);
ModbusMaster master = factory.createRtuMaster(params);
master.setTimeout(1000);
master.setRetries(0);
long start = System.currentTimeMillis();
try {
master.init();
} catch (Exception e) {
System.out.println( "Modbus Master Init Error: " + e.getMessage());
return;
}
try {
System.out.println("Reg. 1001 Value:" + master.getValue(1, RegisterRange.HOLDING_REGISTER, 3110, …Run Code Online (Sandbox Code Playgroud) 我有一个负载均衡器和三台使用 Linux 和 Apache 的 EC2 Web 服务器。每当我$_SERVER['REMOTE_ADDR']在 PHP 中使用获取网站访问者的 IP 地址时,它都会显示错误的 IP 地址。当我在 Whois 数据库中检查 IP 时,我会发现它是一个保留的 IP。我猜它是AWS本身另一台服务器的IP而不是客户端的IP。如何在 EC2 服务器中使用 PHP 获取正确的客户端 IP?
我正在 Golang 中开发一个网络应用程序。我有一个 IP 地址片段。每次收到请求时,我都会用来net.LookupIP(host)查找返回net.IP. 比较这些的最佳方法是什么?
顺便说一句,在 Python 中我们有一个set数据结构,这使得上面的问题很容易解决,但是 Go 呢?
我正在尝试从数据包中获取一些字段,例如目标 ip = ip.dst; 但是我不确定源端口和目标端口的 id 是什么。据我所见,它们似乎是特定于协议的,即 udp = udp.destport; 但是我想知道是否有办法无论协议如何都可以获取端口。下面是我尝试过的示例:
-n -T fields -E separator=, -e frame.time -e ip.src -e ip.dst -e ip.proto -e tcp.port -e ip.len -e tcp.flags.push'
---祝福。
我有以下docker compose文件,用于启动mongo按预期工作的docker 容器。
但是,我似乎无法从compass本地计算机连接到容器。
我docker inspect在我的 mongo 容器上执行并得到它IP并尝试使用指南针连接,但它没有用 - 连接超时。
它是我的 docker 网络的 IP 还是我需要的 mongo 容器的 IP?
码头工人撰写文件:
version: "3"
services:
pokerStats:
image: pokerStats
container_name: pokerStats
ports:
- 8080:8080
depends_on:
- db
db:
image: mongo
container_name: mongo
volumes:
- ./database:/data
ports:
- "27017:27017"
Run Code Online (Sandbox Code Playgroud) 我一直收到[Errno 98] Address already in use但是地址没有被使用。我试图更改 ip 和端口,但它没有改变。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def main():
return {"message": "Helloworld?FastAPI"}
if __name__ == '__main__':
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)
Run Code Online (Sandbox Code Playgroud)
uvicorn main:app --reload
也试过了,uvicorn main:app --host=172.0.0.2 --port=5000
它让 [Errno 99] error while attempting to bind on address ('172.0.0.2', 5000): cannot assign requested address
我尝试运行一个烧瓶开发服务器,它也在 172.0.0.1 上运行没有问题?
使用 Arch-Manjaro-Linux
我用 nmap 看看有什么大惊小怪的。
但是127.0.0.1 IP上只有 2 个端口在使用
PORT STATE SERVICE
631/tcp open ipp
8000/tcp open http-alt
Run Code Online (Sandbox Code Playgroud)
我会使用另一个 …
为什么某些 IPv6 地址在使用时会转换为 IPv4 地址InetAddress.getByName?
例如,我希望这两个地址::f:f:f,::ffff:f:f转换为Inet6Address
然而,这个::ffff:f:f变成Inet4Address
import java.net.InetAddress;
class Main {
public static void main(String[] args) throws Exception {
// Interpreted as IPv6
var address = InetAddress.getByName("::f:f:f");
System.out.println(address); // /0:0:0:0:0:f:f:f
System.out.println(address.getClass()); // class java.net.Inet6Address
// Interpreted as IPv4
address = InetAddress.getByName("::ffff:f:f");
System.out.println(address); // /103.30.217.152
System.out.println(address.getClass()); // class java.net.Inet4Address
}
}
Run Code Online (Sandbox Code Playgroud) ip ×10
java ×2
php ×2
amazon-ec2 ×1
applescript ×1
arrays ×1
camera ×1
compression ×1
docker ×1
fastapi ×1
go ×1
h.264 ×1
ifconfig ×1
ipv4 ×1
ipv6 ×1
linux ×1
master-slave ×1
modbus ×1
modbus-tcp ×1
mongodb ×1
networking ×1
ping ×1
port ×1
python ×1
rtp ×1
slice ×1
tcp ×1
tshark ×1
wireshark ×1