作者 钟来

添加摄像头ip获取方式

... ... @@ -300,18 +300,21 @@ public class CameraRtspHandle implements CameraHandle {
}
public static void main(String[] args) {
ConfigurationParameterService.initConfigurationParameter();
CameraRtspHandle cameraRtspHandle = new CameraRtspHandle();
if(cameraRtspHandle.isOpen())
{
CanvasFrame previewCanvas = new CanvasFrame("摄像头预览", CanvasFrame.getDefaultGamma() / cameraRtspHandle.grabber.getGamma());
previewCanvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
previewCanvas.setAlwaysOnTop(true);
while (true)
{
cameraRtspHandle.pushVideo(filteredFrame -> previewCanvas.showImage(filteredFrame));
}
}
String ips = "192.168.2.2/254";
System.out.println(getIpFromParagraph(ips));
// ConfigurationParameterService.initConfigurationParameter();
// CameraRtspHandle cameraRtspHandle = new CameraRtspHandle();
// if(cameraRtspHandle.isOpen())
// {
// CanvasFrame previewCanvas = new CanvasFrame("摄像头预览", CanvasFrame.getDefaultGamma() / cameraRtspHandle.grabber.getGamma());
// previewCanvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// previewCanvas.setAlwaysOnTop(true);
// while (true)
// {
// cameraRtspHandle.pushVideo(filteredFrame -> previewCanvas.showImage(filteredFrame));
// }
// }
}
... ... @@ -348,6 +351,10 @@ public class CameraRtspHandle implements CameraHandle {
{
return OperatingData.sysConfig.getCameraIp();
}
if(StringUtils.isNotEmpty(OperatingData.sysConfig.getParagraphIp()))
{
return getIpFromParagraph(OperatingData.sysConfig.getParagraphIp());
}
String localIP = getLocalIp();
logger.info("找到的主机ip:"+localIP);
if(null == localIP)
... ... @@ -394,6 +401,38 @@ public class CameraRtspHandle implements CameraHandle {
return null;
}
/**
* 查找可以ip
* @param ips
*/
private static String getIpFromParagraph(String ips) {
try {
String[] ipstart = ips.split("\\.");
String[] endips = ipstart[3].split("/");
InetAddress startInetAddress = InetAddress.getByName(ipstart[0]+"."+ipstart[1]+"."+ipstart[2]+"."+endips[0]);
byte[] startBytes = startInetAddress.getAddress();
for (int i = Integer.parseInt(endips[0]); i <= Integer.parseInt(endips[1]); i++) {
byte[] scanBytes = new byte[]{startBytes[0], startBytes[1], startBytes[2], (byte) i};
String ipToScan = InetAddress.getByAddress(scanBytes).getHostAddress();
Process process = Runtime.getRuntime().exec("ping -n 1 -w 1 " + ipToScan);
int returnVal = process.waitFor();
if (returnVal == 0) {
System.out.println("Ping success: " + ipToScan);
return ipToScan;
} else {
System.out.println("Ping failed: " + ipToScan);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private static void findCamera(String ip)
{
try {
... ...